核心概念之图层和数据(下)
外部数据源图层介绍
外部数据源的数据和文件是由Layer
类的不同子类支持的。包括用于处理外部文件(如CSV
或GeoJSON
文件)或加载外部地图(如GeoQ,高德,Bing Maps)的特定类型的层。
常见的外部数据源图层有以下几种:
CSVLayer
,数据来源为CSV文件,数据类型为点的矢量图形,支持的特性包括客户端地理处理、弹出窗口、支持2D和3D符号渲染。限制主要是可能根据要素个数,需要下载大量数据、GeoJSONLayer
,数据来源为GeoJSON文件,数据类型为点、折线和多边形的矢量图形,主要用于从 GeoJSON 文件创建图层。限制是每个GeoJSON图层只能接受一个单一的几何体类型。OGCFeatureLayer
,数据类型包括点、线和多边形,支持渲染器、标签和弹出窗口等。WFSLayer
,数据来源为WFS 服务,数据类型支持点、多点、线和多边形,支持渲染器、标签、弹出窗口,但是限制数据必须是GeoJSON格式,只支持2.0.0版本。WMSLayer
,数据来源为WMS 服务,数据类型支持栅格数据导出的单个图像,支持OGC规范。WMTSLayer
,数据来源为WMTS切片服务,数据类型为切片图像,支持OGC规范。OpenStreetMapLayer
,数据来源为OSM切片服务,数据类型为切片图像,用来展示OpenStreetMap的切片地图。
以上每个图层在初始化的时候都需要不同的属性,请参考每个图层类型文档了解更多。
创建CSVLayer的示例:
const earthquakesLayer = new CSVLayer({
url: "https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_week.csv",
copyright: "USGS Earthquakes",
latitudeField: "latitude", // Defaults to "latitude"
longitudeField: "longitude" // Defaults to "longitude"
});
map.layers.add(earthquakesLayer)
底图介绍
底图为地图提供地理背景。底图通常以切片地图的形式提供,以加快渲染。栅格底图要预先对底图切片。矢量底图以压缩的二进制格式提供数据,并在客户端上进行渲染。ArcGIS自带了一系列底图1。
自定义地图数据也可以通过ArcGIS Enterprise发布成矢量或栅格切片底图。
一个特定的Map
对象的底图可以用basemap
属性来控制,这个属性可以是一个字符串或一个Basemap
对象。
const Map = new Map({
basemap: "streets-navigation-vector"
})
ArcGIS Server服务介绍
MapImageLayer
用于显示ArcGIS Enterprise发布的Map Service。Map Service通常包含多个子图层和复杂的制图。地图服务将数据渲染成服务器端的图像,并在客户端显示。
const layer = new MapImageLayer({
url: "https://sampleserver6.arcgisonline.com/arcgis/rest/services/USA/MapServer",
sublayers: [
{
id: 1,
visible: true
}, {
id: 0,
visible: true,
definitionExpression: "pop2000 > 100000"
}
]
});
ImageryLayer
用于显示ArcGIS Enterprise发布的 Image Service 的图像或其他栅格数据。
const layer = new ImageryLayer({
// URL to the imagery service
url: "https://landsat2.arcgis.com/arcgis/rest/services/Landsat8_Views/ImageServer"
});
Footnotes
-
一些ArcGIS底图需要
API key
调用,另一部分则无需配置,直接调用,具体请查阅ArcGIS开发者网站。 ↩