Esri Leaflet :介绍各种图层类型

导读:学习如何区分组成ArcGIS平台的图层类型

要素图层(Feature Layers)

要素图层:可以从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"}
     }
  ]
}

动态地图图层(Dynamic Map Layers)

动态地图图层,通过访问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'
})

结果是图像:

 

切片图层(Tield Map Layers)

切片图层与动态图层类似,但访问得到的是预先渲染好的切片缓存。

切片数据比动态图层的访问速度更快,因为这些PNG小图片在服务器端已经渲染好了(原始的数据按照一定的切片方案分级分组存储,只需通过级别、行号、列号就可以访问到这些图片)。现在大部分的底图都是使用切片数据。

切片数据的缺点包括,一是占用服务器较多的存储空间,二是并不会动态更新,当你对这些图层做了操作之后,除非重新切片进行更新,否则变化不会同步。

如何获得切片地图

切片地图是通过ArcGIS  Server 发布MapServer服务创建的,在发布地图服务时,可以创建切片缓存。通过URL访问这些地图服务时,可以通过F12调试看到实际上获得的是地图的缓存信息。

// NOTE - When you visit the url you will see information relating to the tile cache
L.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

转载自:https://blog.csdn.net/meizi454089902/article/details/81234500

You may also like...

退出移动版