数据源
数据源指定地图应显示哪些数据。使用type
属性指定源的类型。仅添加源不足以使数据显示在地图上,因为源不包含样式细节,如颜色或宽度。图层引用源并赋予其视觉表示。这使得可以以不同方式样式化同一源,例如在高速公路图层中区分不同类型的道路;
瓦片源(矢量和栅格)必须根据TileJSON规范指定其详细信息;
sources: {
"maplibre-demotiles": {
"type": "vector",
"url": "https://demotiles.maplibre.org/tiles/tiles.json"
},
"maplibre-tilejson": {
"type": "vector",
"url": "http://api.example.com/tilejson.json"
},
"maplibre-streets": {
"type": "vector",
"tiles": [
"http://a.example.com/tiles/{z}/{x}/{y}.pbf",
"http://b.example.com/tiles/{z}/{x}/{y}.pbf"
],
"maxzoom": 14
},
"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
}
}
vector
矢量瓦片数据源。瓦片必须是Mapbox矢量瓦片格式。矢量瓦片中的所有几何坐标必须在-1 * extent
和(extent * 2) - 1
之间(包含边界值)。所有使用矢量源的图层必须指定source-layer值;
sources: {
"maplibre-streets": {
"type": "vector",
"tiles": [
"http://a.example.com/tiles/{z}/{x}/{y}.pbf"
]
}
}
SDK支持 | MapLibre GL JS | MapLibre Native Android | MapLibre Native iOS |
---|---|---|---|
基本功能 | 0.10.0 | 2.0.1 | 2.0.0 |
type
必需的枚举值。可能的值:vector
。
源的类型;
vector
:矢量瓦片源;
url
可选字符串。
指向TileJSON资源的URL。支持的协议是http:
和https:
;
tiles
可选数组。
一个或多个瓦片源URL的数组,如TileJSON规范中所述;
bounds
可选数组。默认为[-180,-85.051129,180,85.051129]
。
一个包含源边界框的西南角和东北角的经度和纬度的数组,顺序如下:[sw.lng, sw.lat, ne.lng, ne.lat]
。当源中包含此属性时,MapLibre不会请求给定边界之外的瓦片;
scheme
可选枚举值。可能的值:xyz
、tms
。默认为"xyz"
。
影响瓦片坐标的y方向。假定使用全球墨卡托(又称球面墨卡托)配置;
xyz
:滑动地图瓦片名称方案;tms
:OSGeo规范方案;
minzoom
可选数值。默认为0
。
可用瓦片的最小缩放级别,如TileJSON规范中所述;
maxzoom
可选数值。默认为22
。
可用瓦片的最大缩放级别,如TileJSON规范中所述。在更高缩放级别显示地图时,将使用maxzoom级别的瓦片数据;
attribution
可选字符串。
包含在向用户显示地图时要显示的归属信息;
promoteId
可选promoteId。
用作要素ID(用于要素状态)的属性。可以是属性名称,或形式为{<sourceLayer>: <propertyName>}
的对象。如果为矢量瓦片源指定为字符串,则在其所有源图层中使用相同的属性;
volatile
可选布尔值。默认为false
。
用于确定源的瓦片是否在本地缓存的设置;
SDK支持 | MapLibre GL JS | MapLibre Native Android | MapLibre Native iOS |
---|---|---|---|
基本功能 | 未计划 | 9.3.0 | 5.10.0 |
raster
栅格瓦片数据源;
sources: {
"maplibre-satellite": {
"type": "raster",
"tiles": [
"http://a.example.com/tiles/{z}/{x}/{y}.png"
],
"tileSize": 256
}
}
SDK支持 | MapLibre GL JS | MapLibre Native Android | MapLibre Native iOS |
---|---|---|---|
基本功能 | 0.10.0 | 2.0.1 | 2.0.0 |
type
必需的枚举值。可能的值:raster
。
源的类型;
raster
:栅格瓦片源;
url
可选字符串。
指向TileJSON资源的URL。支持的协议是http:
和https:
;
tiles
可选数组。
一个或多个瓦片源URL的数组,如TileJSON规范中所述;
bounds
可选数组。默认为[-180,-85.051129,180,85.051129]
。
一个包含源边界框的西南角和东北角的经度和纬度的数组,顺序如下:[sw.lng, sw.lat, ne.lng, ne.lat]
。当源中包含此属性时,MapLibre不会请求给定边界之外的瓦片;
minzoom
可选数值。默认为0
。
可用瓦片的最小缩放级别,如TileJSON规范中所述;
maxzoom
可选数值。默认为22
。
可用瓦片的最大缩放级别,如TileJSON规范中所述。在更高缩放级别显示地图时,将使用maxzoom级别的瓦片数据;
tileSize
可选数值。默认为512
。
瓦片的大小。单位为像素。如果未指定,默认为512;
scheme
可选枚举值。可能的值:xyz
、tms
。默认为"xyz"
。
影响瓦片坐标的y方向。假定使用全球墨卡托(又称球面墨卡托)配置;
xyz
:滑动地图瓦片名称方案;tms
:OSGeo规范方案;
attribution
可选字符串。
包含在向用户显示地图时要显示的归属信息;
volatile
可选布尔值。默认为false
。
用于确定源的瓦片是否在本地缓存的设置;
SDK支持 | MapLibre GL JS | MapLibre Native Android | MapLibre Native iOS |
---|---|---|---|
基本功能 | 未计划 | 9.3.0 | 5.10.0 |
raster-dem
栅格DEM(数字高程模型)瓦片;
sources: {
"maplibre-terrain": {
"type": "raster-dem",
"url": "https://demotiles.maplibre.org/terrain-tiles/tiles.json"
}
}
SDK支持 | MapLibre GL JS | MapLibre Native Android | MapLibre Native iOS |
---|---|---|---|
基本功能 | 0.43.0 | 6.0.0 | 4.0.0 |
type
必需的枚举值。可能的值:raster-dem
。
源的类型;
raster-dem
:栅格DEM源;
url
可选字符串。
指向TileJSON资源的URL。支持的协议是http:
和https:
;
tiles
可选数组。
一个或多个瓦片源URL的数组,如TileJSON规范中所述;
bounds
可选数组。默认为[-180,-85.051129,180,85.051129]
。
一个包含源边界框的西南角和东北角的经度和纬度的数组,顺序如下:[sw.lng, sw.lat, ne.lng, ne.lat]
。当源中包含此属性时,MapLibre不会请求给定边界之外的瓦片;
minzoom
可选数值。默认为0
。
可用瓦片的最小缩放级别,如TileJSON规范中所述;
maxzoom
可选数值。默认为22
。
可用瓦片的最大缩放级别,如TileJSON规范中所述。在更高缩放级别显示地图时,将使用maxzoom级别的瓦片数据;
tileSize
可选数值。默认为512
。
瓦片的大小。单位为像素。如果未指定,默认为512;
attribution
可选字符串。
包含在向用户显示地图时要显示的归属信息;
encoding
可选枚举值。可能的值:terrarium
、mapbox
。默认为"mapbox"
。
栅格DEM编码格式。
terrarium
:红色通道 * 256 + 绿色通道 + 蓝色通道 / 256 - 32768
;mapbox
:(红色通道 * 256 * 256 + 绿色通道 * 256 + 蓝色通道) - 10000
;
redFactor
可选数值。默认为1
。
控制红色通道在编码方程中如何使用的因子。与blueFactor
和greenFactor
一起,这可以用来创建与内置编码不同的自定义编码格式;
blueFactor
可选数值。默认为1 / 256
(对于mapbox编码)或1 / 256
(对于terrarium编码)。
控制蓝色通道在编码方程中如何使用的因子。与redFactor
和greenFactor
一起,这可以用来创建与内置编码不同的自定义编码格式;
greenFactor
可选数值。默认为1
(对于mapbox编码)或1
(对于terrarium编码)。
控制绿色通道在编码方程中如何使用的因子。与redFactor
和blueFactor
一起,这可以用来创建与内置编码不同的自定义编码格式;
baseShift
可选数值。默认为-10000
(对于mapbox编码)或-32768
(对于terrarium编码)。
添加到编码方程中的值。与自定义因子一起,这可以用来创建与内置编码不同的自定义编码格式;
volatile
可选布尔值。默认为false
。
用于确定源的瓦片是否在本地缓存的设置;
SDK支持 | MapLibre GL JS | MapLibre Native Android | MapLibre Native iOS |
---|---|---|---|
基本功能 | 未计划 | 9.3.0 | 5.10.0 |
geojson
GeoJSON数据源。数据必须通过"data"
属性提供,其值可以是URL或内联GeoJSON。在浏览器中使用时,GeoJSON数据必须与地图位于同一域,或者带有CORS头;
sources: {
"geojson-marker": {
"type": "geojson",
"data": {
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [12.550343, 55.665957]
},
"properties": {
"title": "Somewhere",
"marker-symbol": "monument"
}
}
},
"geojson-lines": {
"type": "geojson",
"data": "./lines.geojson"
}
}
SDK支持 | MapLibre GL JS | MapLibre Native Android | MapLibre Native iOS |
---|---|---|---|
基本功能 | 0.10.0 | 2.0.1 | 2.0.0 |
聚类 | 0.14.0 | 4.2.0 | 3.4.0 |
线距离度量 | 0.45.0 | 6.5.0 | 4.4.0 |
type
必需的枚举值。可能的值:geojson
。
GeoJSON源的数据类型;
geojson
:GeoJSON数据源;
data
必需的。
指向GeoJSON文件的URL,或内联GeoJSON;
maxzoom
可选数值。默认为18
。
创建矢量瓦片的最大缩放级别(更高意味着在高缩放级别有更多细节);
attribution
可选字符串。
包含在向用户显示地图时要显示的归属信息;
buffer
可选范围为[0, 512]的数值。默认为128
。
每侧的瓦片缓冲区大小。值为0不产生缓冲区。值为512产生与瓦片本身一样宽的缓冲区。较大的值在瓦片边缘附近产生较少的渲染伪影但性能较慢;
filter
可选。
用于在渲染之前过滤要素的表达式;
tolerance
可选数值。默认为0.375
。
Douglas-Peucker简化容差(更高意味着更简单的几何形状和更快的性能);
cluster
可选布尔值。默认为false
。
如果数据是点要素集合,将此设置为true会按半径将点聚类成组。聚类组成为源中的新Point
要素,具有以下附加属性:
cluster
如果点是聚类,则为true
cluster_id
聚类的唯一ID,用于与聚类检查方法结合使用point_count
聚集到此聚类中的原始点数point_count_abbreviated
缩写的点数
clusterRadius
可选范围为[0, ∞)的数值。默认为50
。
如果启用聚类,每个聚类的半径。值为512表示半径等于瓦片宽度;
clusterMaxZoom
可选数值。
如果启用聚类,点聚类的最大缩放级别。默认为比maxzoom少一级(这样最后一级缩放的要素不会被聚类)。聚类在整数缩放级别重新评估,因此将clusterMaxZoom设置为14意味着聚类将显示到z15;
clusterMinPoints
可选数值。
如果启用聚类,形成聚类所需的最少点数。默认为2
;
clusterProperties
可选。
如果启用聚类,定义生成的聚类上的自定义属性,从聚类点聚合值。格式为{"property_name": [operator, map_expression]}
。operator
是接受至少2个操作数的任何表达式函数(例如"+"
或"max"
)——它累积聚类包含的聚类/点的属性值;map_expression
产生单个点的值;
示例:{"sum": ["+", ["get", "scalerank"]]}
;
对于更高级的用例,可以使用引用特殊["accumulated"]
值的自定义reduce表达式代替operator
,例如:
{"sum": [["+", ["accumulated"], ["get", "sum"]], ["get", "scalerank"]]}
;
lineMetrics
可选布尔值。默认为false
。
是否计算线距离度量。对于指定line-gradient
值的线图层,这是必需的;
generateId
可选布尔值。默认为false
。
是否为geojson要素生成ID。启用后,feature.id
属性将根据其在features
数组中的索引自动分配,覆盖之前的任何值;
promoteId
可选promoteId。
用作要素ID(用于要素状态)的属性。可以是属性名称,或形式为{<sourceLayer>: <propertyName>}
的对象;
video
视频数据源。urls
值是一个数组。对于数组中的每个URL,将创建一个视频元素源。为了在浏览器之间支持视频,请提供多种格式的URL;
coordinates
数组包含顺时针列出的视频角落的[经度, 纬度]
对:左上角、右上角、右下角、左下角;
当渲染为栅格图层时,图层的raster-fade-duration属性将使视频淡入。这发生在播放开始、暂停和恢复时,或者当视频的坐标更新时。要避免这种行为,将图层的raster-fade-duration属性设置为0
;
sources: {
"video": {
"type": "video",
"urls": [
"https://static-assets.mapbox.com/mapbox-gl-js/drone.mp4",
"https://static-assets.mapbox.com/mapbox-gl-js/drone.webm"
],
"coordinates": [
[-122.51596391201019, 37.56238816766053],
[-122.51467645168304, 37.56410183312965],
[-122.51309394836426, 37.563391708549425],
[-122.51423120498657, 37.56161849366671]
]
}
}
SDK支持 | MapLibre GL JS | MapLibre Native Android | MapLibre Native iOS |
---|---|---|---|
基本功能 | 0.10.0 | 尚不支持 | 尚不支持 |
type
必需的枚举值。可能的值:video
。
视频源的数据类型;
video
:视频数据源;
urls
必需的数组。
按首选格式顺序排列的视频内容URL;
coordinates
必需的数组。
视频的角落,以经度、纬度对指定;
image
图像数据源。url
值包含图像位置。coordinates
数组包含顺时针列出的图像角落的[经度, 纬度]
对:左上角、右上角、右下角、左下角;
sources: {
"image": {
"type": "image",
"url": "https://maplibre.org/maplibre-gl-js/docs/assets/radar.gif",
"coordinates": [
[-80.425, 46.437],
[-71.516, 46.437],
[-71.516, 37.936],
[-80.425, 37.936]
]
}
}
SDK支持 | MapLibre GL JS | MapLibre Native Android | MapLibre Native iOS |
---|---|---|---|
基本功能 | 0.10.0 | 5.2.0 | 3.7.0 |
type
必需的枚举值。可能的值:image
。
图像源的数据类型;
image
:图像数据源;
url
必需的字符串。
指向图像的URL;
coordinates
必需的数组。
图像的角落,以经度、纬度对指定;