如下图,点击定位按钮后查询并显示定位区域
首先打开SuperMap的地图,找到需要定位的底图。把它复制出来后,使用对象操作里的切割功能切成需要的定位的块。如果有已经做好的数据的就不需要使用这个方法切割了
然后保存成数据集,每区域的名称就要在属性表里面手动添加,再把它放到地图里面,记得把眼睛关掉,最好放在底图的上一层,避免查询时覆盖掉其他的内容。
代码部分
首先的是显示地图,声明一个矢量图层用于定位,然后把它加载到Map对象上。
接着调用定位,QuYuMap()是button按钮的点击事件,通过获取按钮参数来确定定位的是哪个区域。代码需要更改的地方只有镇区界_region_2@GISmanxingbing把它换成你的切割的数据集,注意后面是有@工作空间名称的
functionQuYuMap(Id) {
var queryParam = [], queryBySQLParams, queryBySQLService;
vectorLayer.setVisibility(true);
//查询子网格
queryParam.push(new SuperMap.REST.FilterParameter({
name: "镇区界_region_2@GISmanxingbing",//查询数据集名称或者图层名称,根据实际的查询对象而定,必设属性
attributeFilter: "SmID=" + Id,//属性过滤条件
相当于 SQL 语句中的 WHERE 子句,
}));
queryBySQLParams = new SuperMap.REST.QueryBySQLParameters({
//SQL 查询参数类。 该类用于设置 SQL 查询的相关参数。
queryParams: queryParam//查询过滤条件参数数组
});
// SQL 查询服务类。 在一个或多个指定的图层上查询符合 SQL 条件的空间地物信息。
queryBySQLService = new SuperMap.REST.QueryBySQLService(url, {
//url 服务的访问地址
eventListeners: {
"processCompleted": processCompleted_PG }
});
queryBySQLService.processAsync(queryBySQLParams);