问题描述
我之所以问这个问题,是因为我已经在Google Maps API中完成了此操作,但是到目前为止在Mapbox API上还没有找到任何相关文档。我希望能够使用地址解析器标记创建函数。我发现与操纵标记最接近的是更改标记的颜色:
var geocoder = new MapboxGeocoder({
accessToken: mapboxgl.accessToken,marker: {
color: 'orange'
},mapboxgl: mapboxgl
});
但是,我希望能够引用标记,以便我可以基于onmouseenter和onmouseleave事件创建函数。有什么建议?谢谢你。
解决方法
目前尚无记录的方法来访问MapboxGeocoder控件添加到地图的标记。
尽管它不是公共API的一部分,但是您可以通过geocoder.mapMarker
访问标记,尽管由于公共API中未记录该标记,所以它可能会在将来的版本中更改,并且不能保证使用。
一旦引用了geocoder.mapMarker
,您就可以使用geocoder.mapMarker.getElement()
获取实际的Marker元素,并使用标准的HTML / JS在其上添加事件侦听器。
或者,您可以选择不使用内置标记,而是听MapboxGeocoder事件并将您自己的标记放置在地图上。
,试试这个:
var geocoder = new MapboxGeocoder({
accessToken: mapboxgl.accessToken,mapboxgl: mapboxgl
});
geocoder.on('result',e => {
console.log(e.result.center);
});