跳到主要内容
版本:9.1.0

数据源(sources)

数据源是进行地图可视化的基础,通过定义不同图层,可以通过不同方式展示相同的数据。

数据源的类型包括vectorrasterraster-demgeojsonimagevideotype属性的取值必须是其中之一。

说明:仅完成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以支持跨浏览器的视频,按首选格式排列。