有没有办法从mapbox中的搜索位置检索坐标?

有没有办法从mapbox中的搜索位置检索坐标?,mapbox,mapbox-gl-js,mapbox-gl,Mapbox,Mapbox Gl Js,Mapbox Gl,我正在使用mapbox geocoder在我的一个mapbox项目中搜索一个位置。我能够成功实现搜索功能,但我很难从搜索/建议地址列表中提取用户选择的地址 有没有办法获得搜索地点的坐标? 我浏览了mapbox文档,但只发现了一个事件“moveend”,它是在我们飞到某个位置时触发的。因此,我正在侦听该事件,一旦触发,我将调用映射上的getBounds()函数。它在某种程度上起作用,但它没有给我确切的坐标,因为getBounds()给出了长方体的西南和东北坐标。我们能得到选定地点的精确坐标吗 下面

我正在使用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"];
});

提前感谢社区。

你应该听
geocoder.on('result')
,它传递了功能(及其位置)。

你应该听
geocoder.on('result')
,它传递了功能(及其位置)。

谢谢你的回复!我尝试过这样做,但它给出了搜索结果的数组,而不是用户在地图上搜索和导航到的确切位置。如果您不熟悉如何与数组交互或从对象中提取值,也许您应该从一门JavaScript初学者课程开始。如果我不能清楚地向您解释这个问题,我很抱歉。我不需要所有搜索位置的坐标,只需要一个特定位置,用户可以从建议位置列表中单击/选择该位置。geocoder.on('result')的问题在于,当您键入建议时会调用它,但当用户从结果中选择一个位置时不会调用它。任何解决方案。根据文档,
result
是“设置输入时激发的”。(与
结果
相反,后者的行为与您描述的一样。)是的,设置输入时会触发它。但我想要的是一个功能,当用户从列表中飞到所选位置时,会触发该功能。因此,当您在输入中设置某个内容时,您会得到一个包含5个建议的列表,此时geocoder.on(“结果”)将被触发。到目前为止,一切都很完美。现在,从建议位置的列表(长度=5)来看,我单击了第三个元素,如何获得第三个元素的坐标。一旦用户点击了那个位置,我想在那个位置打开一个卫星视图,直到我得到那个位置的坐标,我才能这样做。谢谢回复!我尝试过这样做,但它给出了搜索结果的数组,而不是用户在地图上搜索和导航到的确切位置。如果您不熟悉如何与数组交互或从对象中提取值,也许您应该从一门JavaScript初学者课程开始。如果我不能清楚地向您解释这个问题,我很抱歉。我不需要所有搜索位置的坐标,只需要一个特定位置,用户可以从建议位置列表中单击/选择该位置。geocoder.on('result')的问题在于,当您键入建议时会调用它,但当用户从结果中选择一个位置时不会调用它。任何解决方案。根据文档,
result
是“设置输入时激发的”。(与
结果
相反,后者的行为与您描述的一样。)是的,设置输入时会触发它。但我想要的是一个功能,当用户从列表中飞到所选位置时,会触发该功能。因此,当您在输入中设置某个内容时,您会得到一个包含5个建议的列表,此时geocoder.on(“结果”)将被触发。到目前为止,一切都很完美。现在,从建议位置的列表(长度=5)来看,我单击了第三个元素,如何获得第三个元素的坐标。一旦用户点击了那个位置,我想在那个位置打开一个卫星视图,直到我得到那个位置的坐标,我才能这样做。