首页 > 解决方案 > 使用 Mapbox API Geocoder Marker 的函数/事件

问题描述

我问这个是因为我已经在 Google Maps API 中完成了这个,但到目前为止还没有在 Mapbox API 上找到任何文档。我希望能够使用地理编码器标记创建函数。我发现关于操纵标记的最接近的事情是改变标记的颜色:

var geocoder = new MapboxGeocoder({
accessToken: mapboxgl.accessToken,
marker: {
color: 'orange'
},
mapboxgl: mapboxgl
});

但是,我希望能够引用标记,以便可以基于 onmouseenter 和 onmouseleave 事件创建函数。有什么建议么?谢谢一堆。

标签: mapboxmapbox-gl-jsmapbox-glmapbox-markergeocoder

解决方案


目前没有记录的方法来访问 MapboxGeocoder 控件添加到地图的标记。

虽然不是公共 API 的一部分,但您可以通过 访问标记geocoder.mapMarker,但由于公共 API 中没有记录,因此它可能会在未来的版本中发生变化,并且无法保证使用。

一旦你引用了,geocoder.mapMarker你就可以获取实际的 Marker 元素,geocoder.mapMarker.getElement()并使用标准的 HTML/JS 在其上添加事件侦听器。

或者,您可以选择不使用内置标记,而是收听 MapboxGeocoder 事件并将您自己的标记放在地图上。


推荐阅读