GIS项目地图工具箱多图形查询功能

开发工具与关键技术:VS,MVC
作者:陈梅
撰写时间:2020年5月18日

地图上的工具箱功能还要用图形查询的功能,用矩形,用圆,或着自己随意画些图形来进行地图上信息的查询。接下来来介绍工具箱查询的功能。工具箱的样式和布局在上一个测距离和测面积就已经介绍过了。所以这里就不多说了。
GIS项目地图工具箱多图形查询功能
制作矩形查询的操作功能,代码比较多。但是矩形查询的代码里用到的,圆形查询和自定义查询的功能也会用到。同样的跟测距离和测面积一样,需要引用到清除记录的功能。Deactivate这个代码的意思是使控件及其相关的处理事件(handler)失效。还有addFeatures这个代码是为了添加热点信息。var queryBounds = feature.geometry.bounds;这个代码是为了创建新的bounds对象。然后就是获取地图上的医疗服务的信息,FilterParameter是设置源数据集中空间对象过滤条件,然后name里面的获取了地图上的医疗服务的信息,是必须要设的参数,获取地图上的信息,name里面的是数据集名称或者是数据源的别名。然后接着是QueryByBoundsParameters,是为了查询参数,是查询参数类,该类用于设置Bounds查询的相关参数的。然后queryParams是为了查询过滤条件参数数组。bounds是查询范围。eventListeners是监听器,用于监听对象,在构造函数中设置此参数,对 QueryByBoundsService 支持的 两个事件 electoralFrameCalm 、SearchSuccess 进行监听,相当于调用 SuperMap.Events.on(eventLis。然后下面的processCompleted这个是服务端返回地形曲率计算结果触发该事件。最后就是返回是否成功或失败。最后就是向服务端传递参数,服务端返回对象。
制作完画框查询这个的功能,查询出医疗服务的信息之后,要给医疗信息定一个位置。所以要给医疗,不管是医院还是要点,都定一个位置,让它在地图上显示出来。但是定点查询出来的信息不止这一点。还有比较多的代码,例如定了查询出来的医疗信息,还要获取医疗信息,医院的名字,地址,电话等。都是要显示出来的,这样更好的查询出医疗服务里所有的信息。两个框选点的点位置代码几乎一样,所以就不解释那么多了。接下来把定点医疗信息的所有代码都显示出来吧!把选框查询的代码制作好,圆形查询跟自定义查询的功能查询几乎都是引用的。
GIS项目地图工具箱多图形查询功能
然后就是定点的功能代码的解释。var i, j, result = queryEventArgs.result, marker;申明i,j,result,然后就是服务端返回的对象。Recordsets是将查询出来的地物按照图层进行划分,一个查询记录集存放一个图层的查询结果,即查询出的所有地物要素。Size(25, 20)里的Size这个代码是此类描述一堆高宽值的实例。Pixel(-(size.w / 2), -size.h),Pixel这个代码是用x,y坐标描绘屏幕坐标(像素点)。下面的icon是创建图标,引用图片,就是表现页面中的那个div标签里的image标签。Marker是创建标记。marker.sm_capital = feature.data.NAME;这个代码的意思是,将对象的名称等于f变量里面获取的data数据。“click”: CalmPoint,这个代码的意思是可以将鼠标移动或者click按钮。“touchstart”: CalmPoint,这个代码是,假如要在移动端的浏览器也实现也要实现点击弹框,就要注册touch类事件。touchstart是在当触摸屏上对下面的marker开始进行触摸时触发此事件。scope是回调函数的作用域,还是可以选择的。最后addMarker是在标记图层里添加marker。最后的选框定点2里的代码是为了获取定点里面的信息。getLonLat(),这个代码是为了获取marker的当前坐标。最后再介绍最后一个代码,opacity是面的填充透明度,但是它的值为0到1这个值。矩形查询功能代码就介绍到这里了。接下来的圆选查询和自定义查询代码就很简单。
GIS项目地图工具箱多图形查询功能
在地图上画出一个矩形,就会把有关医疗所有的信息查询出来。不但可以查询出来医疗所有信息,还可以点击你想查看的那个地方的医院或药店,都会把那药店或者医院的地址,名称,电话号码都显示出来。
GIS项目地图工具箱多图形查询功能
就像这样,有地址有电话就可以按照地图上查询到的地址,去找到想要的药店或医院。然后圆形查询和自定义查询的代码几乎都是引用的,引用矩形查询功能用到的代码。
GIS项目地图工具箱多图形查询功能
引用完代码就可以实现功能了。drawFeature1和drawFeature2是引用init()里的功能。如何要在地图制作功能,不管是工具箱的功能,还是位置搜索、查询功能。都要在init()里面先写功能先,然后后面再慢慢引用。init()里是制作地图功能的起点。所以要制作地图功能,就先从init()前申明个变量,就可以开始制作功能了。
GIS项目地图工具箱多图形查询功能
这两个几何查询和多边形查询是init()里的代码,在矩形查询和圆形查询,还有多边形查询都引用到。接下来,来看一下最后的功能显示。
GIS项目地图工具箱多图形查询功能
GIS项目地图工具箱多图形查询功能
圆形查询的功能跟矩形查询功能基本一样,就是把矩形换成了圆形了。多边形也是一样的,多边形就是自己自定义图形来查询医疗的所有服务。所以就不多介绍了,也不显示了。