geocoding - 如何使用反向地理编码获取 Mapbox 的城市/州/国家/地区?

标签 geocoding mapbox

我已经阅读了这个 API 并根据一些示例测试了很多坐标
https://www.mapbox.com/developers/api/geocoding/

是一个提供大量信息的示例,问题是没有简单的方法来获取我能够找到的城市、州和国家。

http://api.tiles.mapbox.com/v4/geocode/mapbox.places/-114.0701,51.0495.json?access_token=pk.eyJ1IjoibWFyaXNhZmx5bm4iLCJhIjoibG9JcmhrbyJ9.yDc_eDeDW2DeM_JVSQPp7g

我可以得到这样的结果

麦克莱恩,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;
                }

关于geocoding - 如何使用反向地理编码获取 Mapbox 的城市/州/国家/地区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27791801/

相关文章:

python - 我们如何获得来自特定国家/地区的推文

geolocation - 分部/区域的 FIPS 到 ISO 3166 代码

javascript - 传单/ map 盒 : Geolocation zoom

javascript - Mapbox - 将弹出事件添加到图层

ios - 使用 Mapbox 聚类注释

flash - 如何在 Flash 中的 Google Maps API 中按街道名称缩放到某个地点?

iphone - 如何在 iPhone 上使用谷歌地图进行反向地理编码

php - 查询数据库中某个区域的位置

ios - Mapbox Geocoding API iOS 是否对大片水域(海洋)进行反向地理编码?