有没有办法从地图框中的搜索位置检索坐标?

Is there any way to retrieve coordinates from searched location in mapbox?

我正在使用 mapbox 地理编码器在我的一个 mapbox 项目中搜索位置。我能够成功实现搜索功能,但我很难从 searched/suggested 地址列表中提取用户选择的地址。

有什么办法可以得到搜索到的地方的坐标吗?

我浏览了 mapbox 文档,但只发现了一个事件 'moveend',当我们飞往某个位置时会触发该事件。所以我正在监听那个事件,一旦被触发,我就会在地图上调用 getBounds() 函数。它以某种方式工作,但它没有给我确切的坐标,因为 getBounds() 给出了盒子的西南和东北坐标。我们可以获取所选地点的确切坐标吗?

下面是我用来搜索地点的代码。

initMapSearch() {
    var _this = this;
    var geocoder = new MapboxGeocoder({ accessToken: environment.mapbox.accessToken, mapboxgl: mapboxgl });
    this.locationObj = geocoder.onAdd(_this.map)
    document.getElementById('geocoder').appendChild(this.locationObj);
}

这是我的 moveend 活动。

this.map.on('moveend', function() {
    _this.lat = _this.map.getBounds()["_ne"]["lng"];
    _this.long = _this.map.getBounds()["_ne"]["lat"];
});

提前感谢社区。

您应该收听通过该功能(及其位置)的 geocoder.on('result')