我已阅读此API,并根据一些示例https://www.mapbox.com/developers/api/geocoding/测试了许多坐标
是一个提供大量信息的示例,问题是没有简单的方法来获取我已经能够找到的城市,州和国家。
我可以得到这样的结果
麦克莱恩(Mc Lean),22102,弗吉尼亚州,美国
旧金山,94103,加利福尼亚,美国
伦敦,SW1H6,英国威斯敏斯特市
旧金山,94114,加利福尼亚,美国
珀斯,6053,西澳大利亚州,澳大利亚
问题是我必须弄清楚如何解析每个国家的邮政编码(不合理)。
我觉得http://api.tiles.mapbox.com/v4/geocode/mapbox.places/可能是错误的端点。我在某一点找到了http://api.tiles.mapbox.com/v4/geocode/mapbox.places-country-v1/,但它只会将国家/地区名称改回来。
如何从Mapbox反向地理编码API查找中获取城市/州/国家/地区数据的任何指导?
我最终根据 mapbox 返回的内容提出了这个函数。根节点给出城镇/城市,然后给出它周围的上下文。这是在重建字符串时检查邮政编码的上下文并排除它的问题。
//builds proper format of location string based on mapbox data. city,state/province,country
function parseReverseGeo(geoData) {
// debugger;
var region, countryName, placeName, returnStr;
if(geoData.context){
$.each(geoData.context, function(i, v){
if(v.id.indexOf('region') >= 0) {
region = v.text;
}
if(v.id.indexOf('country') >= 0) {
countryName = v.text;
}
});
}
if(region && countryName) {
returnStr = region + ", " + countryName;
} else {
returnStr = geoData.place_name;
}
return returnStr;
}
Run Code Online (Sandbox Code Playgroud)