Mapbox API Geocoder Marker

问题描述

我之所以问这个问题,是因为我已经在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);
});

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...