首页 > 解决方案 > 如何使用 Mapbox 的 Geocoder API 搜索靠近用户当前位置的地址?

问题描述

我正在使用 Mapbox Geocoder API 来搜索地址:

https://api.mapbox.com/geocoding/v5/mapbox.places/${this.searchKeyword}.json?country=us&access_token=${this.accessToken}

它工作得很好,但我希望它搜索靠近我用户当前位置的地址(我有 lat long)。现在它给了我在国家另一边的结果。

所以像

https://api.mapbox.com/geocoding/v5/mapbox.places/${this.searchKeyword}.json?country=us&access_token=${this.accessToken}&near=123.456, 121.654

标签: mapboxgeocodingmapbox-gl-js

解决方案


请参阅Mapbox Geocoding API 文档,它将proximity参数描述为

根据提供的位置偏向本地结果。选项是经度,纬度坐标。

因此,在 JavaScript 中,您可以将 URL 形成为:

https://api.mapbox.com/geocoding/v5/mapbox.places/${query}.json?country=${country}&access_token=${accessToken}&proximity=${nearLongitude},${nearLatitude}

如果您在 JavaScript 中执行此操作,则可以使用Mapbox JS SDK,请参阅地理编码服务

如果您在网络上执行此操作并使用Mapbox Geocoder 控件,则有一个proximity选项和一个trackProximity选项可以根据当前地图视图自动设置接近度。


推荐阅读