有什么方法可以从mapbox中搜索到的位置检索坐标?

问题描述 投票:0回答:1

我正在使用mapbox geocoder在我的一个mapbox项目中搜索一个位置。我能够成功地实现搜索功能,但我很难从搜索推荐的地址列表中提取用户选择的地址。

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

我翻阅了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"];
});

先谢谢社区。

mapbox mapbox-gl-js mapbox-gl
1个回答
2
投票

你应该听 geocoder.on('result') 其中传递的是特征(和它的位置)。

© www.soinside.com 2019 - 2024. All rights reserved.