关于WebGIS JS API,只喜欢两种:上手容易,简单灵活的Leaflet,以及系统全面功能强大丰富的Arcgis JS API。
本文简单介绍一下开发过程中对Arcgis JS API中FeatureLayer,WFSLayer以及GraphicsLayer的小发现。
FeatureLayer,要素图层继承自GraphicsLayer,用于显示从Map服务或Feature服务中的一个图层,它可以是一个图层也可以是一张表。如果isEditable为true,则FeatureLayer上的要素可以被编辑。
这里介绍FeatureLayer的几点知识
只有调用过map.addLayer时FeatureLayer graphics属性才不为空数组。
当地图缩放级别不同时,对应线类型和面类型的FeatureLayer,graphics中geometry对应的几何数据详略细节不同。
当前地图视窗在于FeatureLayer某一局部时,graphics会以当前视图某倍率放大的包围盒为几何范围过滤。
现在再看WFSLayer
和FeatureLayer一样,只有调用过map.addLayer时WFSLayer graphics属性才不为空数组。
但是地图缩放级别变化时,或者平移放大到局部时,可以看到WFSLayer graphics属性没有变化。推断WFSLayer
一开始添加到地图时即是原始的几何数据,没有进行几何简化。
new GraphicsLayer创建的graphicsLayer,通过graphicsLayer.add(graphic)方法在此graphicsLayer显式添加graphic,而且graphic其实也是保存在graphicsLayer.graphics属性中,因为通过new Graphic(geometry)创建graphic实例,geometry本身就是构造函数参数,所以我们推断graphicsLayer在地图缩放以及平移放大到局部时,graphics属性无论数量还是节点数量不变。如下图:
还记得我们通过拷贝WFSLayer或FeatureLayer上和鼠标绘制的几何图形空间相交的graphic到一个新的GraphicsLayer实现空间查询的功能,根据上面介绍,这个功能在查询目标层是FeatureLayer层时会存在下图问题。
下文我们将介绍如何处理这种情况。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。