MapBox GL JS:从通过代码设置的字符串地址获取经纬度坐标

MapBox GL JS: Get lat and long coordinates from string Address that is set through code

我正在使用 Mapbox GL JS 来显示地图上标记的特定位置。 我需要通过JavaScript代码设置位置,我不知道纬度和经度坐标,我只有字符串形式的地址(例如:“地址、城市、国家”或类似格式).

我在互联网上搜索了很多,但我发现在 Mapbox GL JS 中执行此操作的唯一方法是使用 Geocoder 输入控件,但我不想通过它输入位置,我想通过代码设置地址,然后在地图加载时将其标记在地图上。

是否可以在 Mapbox GL 不知道纬度和经度坐标的情况下执行此操作?我该怎么做?

提前致谢!此致!

您可以在没有 Geocoder 控件的情况下使用 Mapbox Geocoding API。您必须编写 url(并对其进行编码)。
始终考虑您可能会在 featureCollection 响应中获得多个结果,具体取决于您的参数,因此最后您必须使用一些允许的属性来优化结果,例如 proximitylimit。一开始有点试错,但经过​​一些练习后,它相当准确。

这里有一个示例 url 地址 123 Main St Boston MA 02111,仅在美国过滤结果。

https://api.mapbox.com/geocoding/v5/mapbox.places/123%20Main%20St%20Boston%20MA.json?country=US&access_token=pk.eyJ1IjoianNjYXN0cm8iLCJhIjoiY2s2YzB6Z25kMDVhejNrbXNpcmtjNGtpbiJ9.28ynPf1Y5Q8EyB_moOHylw

这将 return 马萨诸塞州的 5 条街道。

我建议您阅读 forward geocoding, and also the section on address geocoding format 中的文档以正确编写 url。