【问题标题】:Mapbox - What are my layer ID's?Mapbox - 我的图层 ID 是什么?
【发布时间】:2016-12-01 07:10:58
【问题描述】:

我是使用 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/

但唯一能让我的新图层不至于凌驾于一切之上的是“水”。救命!

【问题讨论】:

  • 如果我的问题没有帮助,您可以发布您的代码的实时示例吗?

标签: html mapbox


【解决方案1】:

您可以检索样式规范from the styles api

例如,要获取 light-v10 样式的所有 layer_id,您可以在 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

我只想补充一点,默认样式的图层 ID 可能会因版本而显着变化。

【讨论】:

    【解决方案2】:

    您可以在 Mapbox.com/studio 中通过将 maine 平铺集添加到新样式来进行实验,然后您可以交互地移动图层以进行实验并验证您想要的效果。

    addLayer 的第二个参数是before,所以你的maine 源应该在water 层之前。有关详细信息,请参阅addLayer 上的文档

    https://www.mapbox.com/mapbox-gl-js/api/#Map#addLayer


    图层的名称由 Style.json 中的"id" 标识。

    您可以通过转到您发布的链接找到图层的名称

    water 图层位于 Mapbox 灯光样式的图层堆栈底部附近。

    这是"id 中的水层。

            "id": "waterway-river-canal",
            "id": "water shadow",
            "id": "water",
            "id": "waterway-label",
            "id": "water-label",
    

    【讨论】:

      【解决方案3】:

      可以通过在 Mapbox Studio 中打开地图来找到您的图层 ID。如果你去View style details(左侧窗口右上角带箭头的框,它将显示所有层。

      【讨论】:

        猜你喜欢
        • 2019-10-22
        • 1970-01-01
        • 2015-01-16
        • 2022-06-13
        • 2018-04-20
        • 2015-07-06
        • 1970-01-01
        • 1970-01-01
        • 2017-04-03
        相关资源
        最近更新 更多