如何在 Mapbox GL JS 中将图标添加到没有 geojsonlayer 的标记

Posted

技术标签:

【中文标题】如何在 Mapbox GL JS 中将图标添加到没有 geojsonlayer 的标记【英文标题】:How to add an icon to marker without geojsonlayer in Mapbox GL JS 【发布时间】:2021-10-15 20:44:01 【问题描述】:

我找到了以下代码:

var marker = new mapboxgl.Marker()
    .setLngLat([-71.478, -53.628])
    .addTo(map);

效果很好。现在我想要一个特殊的图标或图像,而不是基本的地图框图标。我该怎么做呢? Mapbox 提供了许多关于为标记提供图标和图片的示例,但我只找到了具有 geojson 功能的方法(例如 https://docs.mapbox.com/mapbox-gl-js/example/custom-marker-icons/ )。但我不想仅仅因为加载一个图标就创建一个 geojson 层。我只想用这3行代码。

【问题讨论】:

【参考方案1】:

该示例中没有任何内容需要 GeoJSON 层。

您可以复制/粘贴示例的这一部分:

const el = document.createElement('div');
el.className = 'marker';
el.style.backgroundImage = `url(https://placekitten.com/g/30/30)`;

然后使用该元素创建标记:

const marker = new mapboxgl.Marker(el)
...

【讨论】:

以上是关于如何在 Mapbox GL JS 中将图标添加到没有 geojsonlayer 的标记的主要内容,如果未能解决你的问题,请参考以下文章

mapbox gl改变图标颜色

如何在 mapbox-gl-js 的标记上添加“点击”侦听器

如何在 mapbox-gl-js 中以某些缩放级别隐藏点标签?

如何在 mapbox-gl-js 中为源指定授权标头?

我可以像在(mapbox-gl-js 文档)中那样使用 react-map-gl 添加 GeoJSON 行吗?

通过 mapbox gl js 向 mapbox 中的地图添加一些基本标记