Mapbox API很好地支持地理编码请求,但我总是得到英文的结果。我希望能够以特定语言获得结果。
对于 Mapbox.js API,可以用不同的语言显示地图(通过更改样式),但我找不到正确翻译地理编码请求的方法。
例如,如果我经过城市"根特",我希望看到它在东弗兰德伦省和比利时乡村。但是,我得到"根特,东弗兰德伦,比利时"。 这将使用如下请求来完成:https://api.mapbox.com/geocoding/v5/mapbox.places/Gent.json?country=be&access_token=MYACCESSTOKEN
有没有办法获得正确翻译的结果?也许使用设置或额外参数?
我在Streets-v8(可能在mapbox.places)中看到的本地化名称是name_en
,name_es
,name_fr
,name_ru
和name_zh
。
这看起来您需要向 Mapbox 提交功能请求,至少您可以获得对name_fr
的支持。
我喜欢使用Mapbox命令行界面来查看Mapbox查询的响应。 此特定查询给出的响应为"place_name": "Gent, Oost-Vlanderen, Belgium",
mapbox-cli> mapbox geocoding 'Gent' --country be
我也在查询中尝试了Ghent
,但仍然收到英语
该镇在 Mapbox 语言切换示例中显示为根特。
看起来解决方案已经实施!
只需在初始化对象上传入一个语言字段,如下所示:
var geocoder = new MapboxGeocoder({ language: 'es' }); //change lang to spanish
从这些文档中得到它:https://github.com/mapbox/mapbox-gl-geocoder/blob/master/API.md#mapboxgeocoder