导读:学习如何区分组成ArcGIS平台的图层 类 型
要素图层:可以从ArcGIS Online或ArcGIS Server 请求要素属性和几何信息,从而展示在 Web 端的一类图层。无论服务是否满足本地格式,返回的是GeoJSON格式。
请求这种要素图层,常用的场景就是:通过访问该服务图层,得到要素所有的几何、属性信息,这样就可以在客户端创建弹出信息窗口进行展示了。也就是说,要素图层可以通过从服务器到客户端获得大量的数据。当然,如果你要绘制整个美国的征税包裹,肯定不想用要素图层。(因为请求所有数据,并全部展示在客户端,性能会很慢,其实也没有必要。)为解决这个问题,Esri Leaflet提供了一些选项。默认情况下,我们只请求当前范围内的要素,这样你就可以从后台大量的数据中抽取部分数据进行显示。
Esri Leaflet 提供了其他机制来优化性能。你可以控制获取哪些属性,对原始数据进行简化,用SQL语句过滤数据等等。客户端显示要素的数量总是有限的,这取决于服务器和使用的浏览器客户端。(比如IE版本的不同就对可渲染的多边形数量支持度不一样,在IE11上可以正常访问,也许在IE8上就会报错)。
要素图层可以通过ArcGIS Server 发布 MapServer或FeatureServer 创建。要使用任意地图服务,只需指定特定的图层索引即可,如“ESRI_Population_World/MapServer/0”。
当然,如果你想在浏览器端编辑要素的话,需要发布成FeatureServer服务。
L.esri.featureLayer({ url: '.../ArcGIS/rest/services/BloomfieldHillsMichigan/LandusePlanning/FeatureServer/0'}) L.esri.featureLayer({ url: '.../ArcGIS/rest/services/Demographics/ESRI_Population_World/MapServer/0'})下面,是请求访问点图层的一个结果,是GeoJSON格式的,包括了坐标信息和属性信息。
{"type":"FeatureCollection","crs":{"type":"name","properties":{"name":"EPSG:4326"}}, "features":[ {"type":"Feature", "id":2, "geometry":{"type":"Point","coordinates":[-122.647466,45.543523]}, "properties":{"FID":2,"GEODB_OID":144,"OBJECTID":144,"TREEID":164,"STATUS":"Heritage","SCIENTIFIC":"Platanus x acerifolia","COMMON_NAM":"London planetree","STATEID":"1N1E26AC 12000","ADDRESS":"1728 NE STANTON ST","HEIGHT":82,"SPREAD":85,"CIRCUMFERE":15.44,"DIAMETER":59,"YEAR":1997,"OWNER":"Private, Front Yard","NOTES":"south side between NE 17th Ave and NE 18th Ave"} } ]}动态地图图层,通过访问ArcGIS Server地图服务获得JPG或PNG的图像,Esri Leaflet会将图像放置在正确的位置上,也即动态地展示在客户端。
动态地图图层的好处是,只在端最终呈现一幅 Image ,这在处理具有复杂几何形状的大型数据集是非常有用的。只需发送一个图像,而不是好几兆的数据。动态地图图层在客户端渲染时比较方便,如果你的数据集不断变化的话。
动态地图图层的缺点是,如果你想请求附加的属性信息时,从服务器获得该信息时比较耗时。Esri Leaflet 确实也提供了这样的访问方式,但你会注意到,并不如Feature Layer好使。
动态地图图层可以访问MapServer服务。
// NOTE - The url contains 'MapServer'L.esri.dynamicMapLayer({ url: 'https://services.arcgisonline.com/arcgis/rest/services/Specialty/Soil_Survey_Map/MapServer'})结果是图像:
切片图层与动态图层类似,但访问得到的是预先渲染好的切片缓存。
切片数据比动态图层的访问速度更快,因为这些PNG小图片在服务器端已经渲染好了(原始的数据按照一定的切片方案分级分组 存储 ,只需通过级别、行号、列号就可以访问到这些图片)。现在大部分的底图都是使用切片数据。
切片数据的缺点包括,一是占用服务器较多的存储空间,二是并不会动态更新,当你对这些图层做了操作之后,除非重新切片进行更新,否则变化不会同步。
切片地图是通过ArcGIS Server 发布MapServer服务创建的,在发布地图服务时,可以创建切片缓存。通过URL访问这些地图服务时,可以通过F12调试看到实际上获得的是地图的缓存信息。
// NOTE - When you visit the url you will see information relating to the tile cacheL.esri.tiledMapLayer({ url: 'https://services.arcgisonline.com/ArcGIS/rest/services/USA_Topo_Maps/MapServer'})如,以下这个链接对应的就是下面这张图片。
http://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile/8/106/208

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删