functions/events 使用 Mapbox API 地理编码标记
functions/events using Mapbox API Geocoder Marker
我问这个是因为我已经在 Google 地图 API 中完成了此操作,但到目前为止还没有在 Mapbox API 上找到任何相关文档。我希望能够使用地理编码器标记创建函数。我发现关于操纵标记的最接近的事情是改变标记的颜色:
var geocoder = new MapboxGeocoder({
accessToken: mapboxgl.accessToken,
marker: {
color: 'orange'
},
mapboxgl: mapboxgl
});
但是,我希望能够引用标记,以便我可以创建基于 onmouseenter 和 onmouseleave 事件的函数。有什么建议么?非常感谢。
目前没有记录的方法来访问 MapboxGeocoder 控件添加到地图的标记。
虽然不是 public API 的一部分,但您可以通过 geocoder.mapMarker
访问该标记,因为 public [=22] 中没有记录=] 它可能会在未来的版本中发生变化,并且不保证使用。
一旦您引用 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);
});
我问这个是因为我已经在 Google 地图 API 中完成了此操作,但到目前为止还没有在 Mapbox API 上找到任何相关文档。我希望能够使用地理编码器标记创建函数。我发现关于操纵标记的最接近的事情是改变标记的颜色:
var geocoder = new MapboxGeocoder({
accessToken: mapboxgl.accessToken,
marker: {
color: 'orange'
},
mapboxgl: mapboxgl
});
但是,我希望能够引用标记,以便我可以创建基于 onmouseenter 和 onmouseleave 事件的函数。有什么建议么?非常感谢。
目前没有记录的方法来访问 MapboxGeocoder 控件添加到地图的标记。
虽然不是 public API 的一部分,但您可以通过 geocoder.mapMarker
访问该标记,因为 public [=22] 中没有记录=] 它可能会在未来的版本中发生变化,并且不保证使用。
一旦您引用 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);
});