数据源(sources)
数据源是进行地图可视化的基础,通过定义不同图层,可以通过不同方式展示相同的数据。
数据源的类型包括vector
、 raster
、 raster-dem
、 geojson
、 image
、video
,type
属性的取值必须是其中之一。
说明:仅完成source添加无法让数据显示在地图上,你还需要基于这个数据定义图层样式。
GeoJSON
GeoJSON源。 数据必须通过"data"
属性提供,其值可以是URL或内联GeoJSON。
"geojson-marker": {
"type": "geojson",
"data": {
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [120.74603465203592, 31.30605899929158]
},
"properties": {
"title": "Mapmost DC",
"marker-symbol": "monument"
}
}
}
这个GeoJSON源的例子通过URL引用了一个外部的GeoJSON文档。 GeoJSON文档必须在同一个域中,或者可以使用CORS访问。
"geojson-lines": {
"type": "geojson",
"data": "./lines.geojson"
}
attribution
可选属性。string
包含向用户展示映射时需要显示的属性。
buffer
可选属性。number
。取值范围0 ~ 512(含512), 默认值128。
瓦片四周的大小。数值为0则不产生缓冲区。 数值为512时会产生一个和贴图本身一样宽的缓冲区。 数值较大时,瓦片边缘会减少渲染工件并且性能变低。
cluster
可选属性。boolean
。默认值false
。
如果数据是点特征的集合,则将此设置为true,并按照半径大小将点聚为组。 点集群组在源代码中成为新的Point特性,具有额外的属性:
如果该点是一个群集,则为真。
cluster_ids
,是用于配合集群巡检方式使用的唯一id。point_count
,群集中的原始点的数目。point_count_abbreviated
,简化的点数计算。
clusterMaxZoom
可选属性。number
启用集群功能后集群点的最大地图层级。 默认是小于maxzoom的一次缩放(因此最后的缩放特性不会聚集在一起)。 集群将以整数缩放级别重新评估,因此将clusterMaxZoom设置为14意味着集群将一直显示到z15。
clusterMinpoints
可选属性。number
启用集群功能后,形成集群所需的最小点数。默认值2。
clusterProperties
可选属性。
启用群集功能后,则在生成的群集上自定义属性的对象,从群集点聚合值。 其具有{"property_name": [operator, map_expression]}
的形式。 Operator
可以接受至少两个操作数的任意表达式函数(例如: "+"或"max"),它通过集群/点集群包含的属性值累积; Map_expression
可以生成单个点的值。
例如:{"sum": ["+", ["get", "scalerank"]]}.
对于更高级的案例,你可以使用一个定制的reduce表达式来代替运算符,它引用一个特殊的[" cumulative "]
值,例如:{"sum": [["+", [" cumulative "], ["get", "sum"]], ["get", "scalerank"]]}
clusterRadius
可选属性。大于等于0的number
。默认值50。
启用集群功能后,代表每个集群的半径,512表示集群半径等于瓦片的宽度。
data
可选属性。
一个指向GeoJSON文件的URL,或者内联GeoJSON。
filter
可选属性。
在渲染特征以进行呈现之前,用于过滤特征的表达式。
generateId
可选属性。boolean
。默认值false
。
是否为geojson生成id
。 启用后,该feature.id
属性将根据其在features
数组中的索引自动赋值并覆盖之前的值。
lineMetrics
可选属性。boolean
。默认值false
。
是否计算线距离度量。 这对于指定line-gradient
值的线层是必需的。
maxzoom
可选属性。number
。默认值18。
创建矢量瓦片的最大缩放级别(更高意味着在更高的缩放级别上展现更多的细节)。
promoteId
可选属性。promoteId
用作特性id的属性(用于特性状态)。 可以是属性名,也可以是{sourceLayer:propertyName}
形式的对象。 如果指定为矢量瓦片源的字符串,则在其所有源层中使用相同的属性。
tolerance
可选属性。number
。默认值0.375。多边形要素简化的阈值,当多边形本身形状特别小的时候,可以调小这个阈值,使得要素简化没那么严重,尽可能保留多边形原始点位。
Douglas-Peucker
简化公差(更高意味着更简单的几何形状和更快的性能)。
图像(Image)
图像数据源。
"image": {
"type": "image",
"url": "./radar.gif",
"coordinates": [
[-80.425, 46.437],
[-71.516, 46.437],
[-71.516, 37.936],
[-80.425, 37.936]
]
}
coordinates
必填属性。array
coordinates
数组包含了按顺时针顺序列出的图像角点的经纬度,对应:左上,右上,右下,左下。
url
必填属性。string
图像的URL。
栅格瓦片(Raster)
定义栅格瓦片数据源的格式如下:
"mapmost-satellite": {
"type": "raster",
"url": "<raster url>",
"tileSize": 256
}
attribution
可选属性。string
包含向用户展示映射时需要显示的属性。
bounds
可选属性。array
。
包含源包围框的西南角和东北角的经度和纬度的数组,其顺序如下: [sw.lng, sw.lat, ne.lng, ne.lat]
。 当这个属性包含在一个源中时,Mapmost SDK for WebGL不会发送请求给边界之外的任何瓦片。
maxzoom
可选属性。number
。默认值22。
栅格瓦片可用的最大缩放级别,如TileJSON规范中所示。当以更高的缩放级别显示地图时,将使用maxzoom上的瓦片数据。
minzoom
可选属性。number
。默认值0。
瓦片可用的最小缩放级别,如TileJSON规范中所示。
scheme
可选属性。enum
。"xyz"
和"tms"
中的一个,默认值"xyz"
。
影响瓦片坐标的y方向。 假设是全球墨卡托(又名球形墨卡托)轮廓。
"xyz"
: Slippy 地图切片名称方案。
"tms"
: OSGeo 规范方案。
tiles
可选属性。string
一个或多个tile源url的数组,如TileJSON规范中所示。
tileSize
可选属性。number
。单位像素,默认值512。
图层中显示瓦片的最小可视尺寸。 仅可在栅格层中配置。
url
可选属性。string
TileJSON资源的URL。 支持的协议有:http:
、https:
。
栅格DEM瓦片(Raster-dem)
栅格DEM源。
"mapmost-terrain-dem-v1": {
"type": "raster-dem",
"tiles": [
"<tiles url>"// 如 "http://***/dem/{z}/{x}/{y}.png"
],
}
attribution
可选属性。string
包含向用户展示映射时需要显示的属性。
maxzoom
可选属性。number
。默认值22。
瓦片可用的最大缩放级别,如 TileJSON 规范中所示。当以更高的缩放级别显示地图时,将使用来自最大缩放的图块的数据。
minzoom
可选属性。number
。默认值0。
瓦片可用的最小缩放级别,如TileJSON规范中所示。
tiles
可选属性。string
一个或多个tile源url的数组,如TileJSON规范中所示。
tileSize
可选属性。number
。单位像素。默认值512。
图层中显示瓦片的最小可视尺寸。 仅可在栅格层中配置。
瓦片地图(Tiled sources)
瓦片地图服务(矢量和栅格)必须根据TileJSON规范指定它们的详细信息。定义数据源的具体形式如下:
- 通过在源代码中直接提供TileJSON属性,如
"tiles"
,"minzoom"
和"maxzoom"
:
"mapmost-dark": {
"type": "vector",
"tiles": [
"http://a.example.com/tiles/{z}/{x}/{y}.pbf",
"http://b.example.com/tiles/{z}/{x}/{y}.pbf"
],
"maxzoom": 14
}
- 为TileJSON资源添加一个"url":
"mapmost-dark": {
"type": "vector",
"url": "http://api.example.com/tilejson.json"
}
- 通过提供一个WMS服务的URL作为数据源。 支持EPSG:3857(或者EPSG:900913)地图服务,服务的URL中bbox参数需要改为"{bbox-epsg-3857}" 。
"wms-imagery": {
"type": "raster",
"tiles": [
"http://a.example.com/wms?bbox={bbox-epsg-3857}&format=image/png&service=WMS&version=1.1.1&request=GetMap&srs=EPSG:3857&width=256&height=256&layers=example"
],
"tileSize": 256
}
【CGCS 2000专版】支持EPSG:4490的地图服务,服务的URL中bbox参数需要改为"{bbox-epsg-4490}" 。
矢量瓦片(Vector)
矢量瓦片地图服务。 定义数据源的格式如下:
"mapmost-dark": {
"type": "vector",
"url": "http://***/mms-style/darkMap.json"
}
所有使用矢量瓦片地图的图层必须指定一个"source-layer"
。
attribution
可选属性。string
包含向用户展示时要显示的属性。
bounds
可选属性。array
。
包含源包围框的西南角和东北角的经度和纬度的数组,其顺序如下: [sw.lng, sw.lat, ne.lng, ne.lat]
。 当这个属性包含在一个源中时,Mapmost SDK for WebGL不会请求给定边界之外的任何瓦片。
maxzoom
可选属性。number
。 默认值22。
瓦片可用的最大缩放级别,如TileJSON规范中所示。当以更高的缩放级别显示地图时,将使用maxzoom上的瓦片数据。
minzoom
可选属性。number
。 默认值0。
瓦片可用的最小缩放级别,如TileJSON规范中所示。
promoteId
可选属性。promoteId
用作特性id的属性(用于特性状态)。 可以是属性名,也可以是{sourceLayer:propertyName}
形式的对象。 如果指定为矢量瓦片源的字符串,则在其所有数据源图层中使用相同的属性。
scheme
可选属性。enum
。"xyz"
和"tms"
中的一个。默认值"xyz"
。
影响瓦片坐标的y方向。 假设是全球墨卡托(又名球形墨卡托)。
"xyz"
: Slippy 地图切片名称方案。
"tms"
: OSGeo 规范方案。
tiles
可选属性。array
一个或多个包含tile源url的数组,如TileJSON规范中所示。
url
可选属性。string
TileJSON资源的URL。 支持的协议有: http:
、https:
。
volatile
可选属性。boolean
。默认值false
。
确定源文件的瓦片是否在本地缓存的设置。
视频(Video)
视频数据源。
"video": {
"type": "video",
"urls": [
"./drone.mp4",
"./drone.webm"
],
"coordinates": [
[-122.51596391201019, 37.56238816766053],
[-122.51467645168304, 37.56410183312965],
[-122.51309394836426, 37.563391708549425],
[-122.51423120498657, 37.56161849366671]
]
}
coordinates
必填属性。array
数组包含了按顺时针顺序列出的视频角点的经纬度,对应:左上,右上,右下,左下。
urls
必填属性。string
urls
为视频url数组,提供多种格式的url以支持跨浏览器的视频,按首选格式排列。