高质量编码-地图图层管理

WebGIS开发中,业务中经常需要许多图层,通常是ArcGISTiledMapServiceLayerFeatureLayer,如果使用开源的GeoServer作为地图服务器,通常使用WMTSLayer以及WFSLayer。因为Arcgis JS API功能强大,所以我们最好采用Arcgis JS API来开发WebGIS应用。即使我们使用免费开源的GeoServergeowebcache来作为地图服务器,我们也最好不使用openlayermapbox等其他地图JS API技术,使用Arcgis JS API的WMTSLayer和WFSLayer来加载开源免费的地图服务器发布的地图服务,毕竟Arcgis JS API的易用,强大,系统全面是任何其他WebGIS JS API无法比拟的。

通常项目开发中,我们这样定义图层

定义一个arcgis 切片服务图层
定义一个Arcgis要素图层

通常情况下ArcGISTiledMapServiceLayer和WMTSLayer

如果项目中需要许多图层,就在代码中为每个图层定义一个layer

不仅如此,还要在交互中对特定图层隐藏,显示,调整顺序。

多年工作经验,发现项目中通常就是两种图层需求,一种是切片图层用于显示静态地图,另一种是动态图层,用于在浏览器产生交互或者动态样式。前者我们通常使用ArcGISTiledMapServiceLayer和WMTSLayer,后者我们通常使用FeatureLayer和WFSLayer。那么,根据自己公司的产品和项目,我们为什么设计只需通过简单配置就可以实现对常用图层的管理呢?我们不需要去适应每一种类型图层,也不需要考虑那么多构造函数的参数,只需要考虑项目中常用图层类型以及常用构造参数就可以了。

Arcgis中的图层类型
每一种图层类型的构造函数可选参数都非常多

下面介绍使用《高质量编码-实现基于html的参数配置》中的方法来完成地图图层的配置:

data-name表示layer的id,serviceType表示切片类型,支持ArcGISTiledMapServiceLayer和WMTSLayer
id方便通过map._layers以及自己定义的变量来跟踪layer
将FeatureLayer的配置嵌套在ArcGISTiledMapServiceLayer中
WMTSLayer图层的配置
WMTSLayer图层需要配置tileInfo和layerInfo
同样将WFSLayer配置嵌套在WMTSLayer配置中
这里为FeatureLayer和WFSLayer配置了infoWindow鼠标事件(点击或经过)以及弹窗标题,弹窗内容模板以及弹窗大小

下文将介绍根据配置文件管理图层是多么简单方便。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券