我刚开始使用Mapbox。
我正在尝试添加一个新的图层到我的地图上,在水层之上,但在标签之下。
map.addLayer({
'id': 'maine',
'type': 'fill',
'source': 'maine',
'layout': {},
'paint': {
'fill-color': '#088',
'fill-opacity': 0.8
}
}, 'water');
(此代码摘自Mapbox中的一些示例代码。)
现在,这将在水层和标签下面创建一个层。但是,我不知道哪个图层ID会使它位于水层之上。
这是我正在使用的样式表:
mapbox://styles/mapbox/light-v9
如何找到此样式表的其他有效层ID?我尝试过“街道”、“道路”、“道路”、“土地”等,但都不起作用。我以为这个链接包含了所有的层名称:
https://www.mapbox.com/studio/styles/mapbox/light-v9/
但是,唯一能让我的新图层不在所有东西上面的就是“水”。帮助!
发布于 2016-12-02 04:43:22
你可以在Mapbox.com/studio中进行实验,将你的maine
瓦片集添加到一个新的样式中,然后你可以交互地移动图层来实验和证明你想要的效果。
addLayer
的第二个参数是before
,因此您的maine
源代码应该在water
层之前。有关详细信息,请参阅addLayer
上的文档
https://www.mapbox.com/mapbox-gl-js/api/#Map#addLayer
层的名称由Style.json中的"id"
标识。
您可以通过转到所发布的链接来查找图层的名称
在那里你会看到来自Mapbox的图层ids的一个很好的可视化效果。
water
图层位于Mapbox光源样式的layers堆栈的底部附近。
这是在"id
中有水的层。
"id": "waterway-river-canal",
"id": "water shadow",
"id": "water",
"id": "waterway-label",
"id": "water-label",
发布于 2022-01-11 21:25:09
您可以检索样式规范from the styles api。
例如,要获取light-v10样式上的所有layer_ids,您可以在python中执行以下操作:
import requests
for layer in requests.get('https://api.mapbox.com/styles/v1/mapbox/light-v10?access_token=pk.eyJ1IjoiYmNrb2hhbiIsImEiOiJja2Zvamc4ejcyZjRxMzFwMXNwcGIxdDVlIn0.KdUOuJFIaV4eCzq94AgMGw').json()['layers']: print(layer['id'])
这会产生:
land
landcover
national-park
landuse
water-shadow
waterway
water
hillshade
land-structure-polygon
land-structure-line
aeroway-polygon
aeroway-line
building-outline
building
tunnel-street-minor-low
tunnel-street-minor-case
tunnel-primary-secondary-tertiary-case
tunnel-major-link-case
tunnel-motorway-trunk-case
tunnel-construction
tunnel-path
tunnel-steps
tunnel-major-link
tunnel-pedestrian
tunnel-street-minor
tunnel-primary-secondary-tertiary
tunnel-motorway-trunk
road-pedestrian-case
road-minor-low
road-street-low
road-minor-case
road-street-case
road-secondary-tertiary-case
road-primary-case
road-major-link-case
road-motorway-trunk-case
road-construction
road-path
road-steps
road-major-link
road-pedestrian
road-minor
road-street
road-secondary-tertiary
road-primary
road-motorway-trunk
road-rail
bridge-pedestrian-case
bridge-street-minor-low
bridge-street-minor-case
bridge-primary-secondary-tertiary-case
bridge-major-link-case
bridge-motorway-trunk-case
bridge-construction
bridge-path
bridge-steps
bridge-major-link
bridge-pedestrian
bridge-street-minor
bridge-primary-secondary-tertiary
bridge-motorway-trunk
bridge-rail
bridge-major-link-2-case
bridge-motorway-trunk-2-case
bridge-major-link-2
bridge-motorway-trunk-2
admin-1-boundary-bg
admin-0-boundary-bg
admin-1-boundary
admin-0-boundary
admin-0-boundary-disputed
road-label
waterway-label
natural-line-label
natural-point-label
water-line-label
water-point-label
poi-label
airport-label
settlement-subdivision-label
settlement-label
state-label
country-label
我需要注意的是,默认样式的图层ids可能会因版本不同而发生显著变化。
发布于 2016-12-04 11:09:26
通过在Mapbox Studio中打开地图,可以找到图层ID。如果你去View style details
(在左手窗口的右上角有一个箭头的框,它会显示所有的层。
https://stackoverflow.com/questions/40904573
复制相似问题