当GIS地图中出现点要素比较集中的情况时,进行点选如果不加以设置调整的话就会出现点选不上要素。目前有如下两种设置方式,都是对选中要素进行范围扩大,但是差别很大,现在以极端方式来验证这两种方式的效果。
我们先来看一下将要操作的地图底图效果:
这是一个管网图层+管网附属建筑物图层,在截图中不难看到很多附属建筑物都靠近在一起,而且图层信息比较复杂,若要实现点选,默认的点选方法如下:
IdentifyTask IdentifyTask = new IdentifyTask(Config.MapServiceAddr); //实例化Task对象
IdentifyTask.ExecuteCompleted += new EventHandler<IdentifyEventArgs>(IdentifyTask_ExecuteCompleted); //注册Task完成监听事件
ESRI.ArcGIS.Client.Tasks.IdentifyParameters identyfyParams = new IdentifyParameters(); //实例化Task参数对象
identyfyParams.Geometry = e.MapPoint; //待识别的几何图形,常用的有点选,矩形选择,多边形选择等
identyfyParams.Height = (int)MyMap.ActualHeight; //当前浏览器的地图高度
identyfyParams.Width = (int)MyMap.ActualWidth; //当前浏览器的地图宽度
identyfyParams.MapExtent = MyMap.Extent; //当前地图的范围
identyfyParams.SpatialReference = MyMap.SpatialReference; //定义输入和输出几何图形,以及mapExtent的空间参考
identyfyParams.LayerOption = LayerOption.all; //定义查询图层
/**
* 固定查询第一个图层,即高速公路,可以使用下拉框进行选择其它图层(需要遍历所有图层),查询多个图层
* identifyParams.layerOption=IdentifyPara