首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从地理编码结果获取城市谷歌地图Api

从地理编码结果获取城市谷歌地图Api
EN

Stack Overflow用户
提问于 2017-11-19 11:01:17
回答 1查看 2K关注 0票数 5

我正在使用Google (https://maps.googleapis.com/maps/api/geocode/xml)对地点和地址进行地理编码。然而,结果似乎不一致。administrative_area_level_2和locality或locality与sublocality_level_1似乎重叠。但是,根据地址的不同,重叠是不同的。我需要做的一件事就是决定这个城市。文件指出,该地点相当于一个城市取决于国家。

如果我的地理代码是“Noord-荷兰,Nederland”,这是我得到的一个省:

  • 国家:荷兰
  • administrative_area_level_1: Noord-荷兰

我能理解。一切看起来都很好..。

如果我的地理代码是“阿姆斯特丹,荷兰”,我得到以下结果:

  • 国家:荷兰
  • administrative_area_level_1: Noord-荷兰
  • administrative_area_level_2:Amsterdam
  • 地点:阿姆斯特丹

在这里,我开始不理解结果。为什么阿姆斯特丹既被列为administrative_area_level_2,也被列为地方?也许有一个更高级的政府机构,同名?但是好吧,阿姆斯特丹是地方,所以是城市。这是正确的。

如果我的地理代码是"Anton de Komplein 150,1102 CW阿姆斯特丹,Noord-荷兰,Nederland“,我得到以下结果:

  • 国家:荷兰
  • 行政区域一级:荷兰
  • administrative_area_level_2:Amsterdam
  • 地点:阿姆斯特丹-祖都斯特
  • 分区一级:阿姆斯特丹-Zuidoost

现在我真的不明白了。

  1. 这里是阿姆斯特丹-祖多斯特提到过两次
  2. 为什么这里的地方是“阿姆斯特丹-祖多斯特”?不是城市..。我本以为“阿姆斯特丹”是地方,“阿姆斯特丹-祖多斯特”是sublocality_level_1。

有人能解释一下我该怎么解释结果吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-18 09:59:39

我看过你的例子,我相信这些数据问题应该向谷歌报告。

让我们来解释一下我的发现:

关于“阿姆斯特丹、荷兰、荷兰”的请求

https://maps.googleapis.com/maps/api/geocode/json?address=Amsterdam%2C%20Noord-Holland%2C%20Nederland&key=MY_API_KEY

为我返回以下地址组件

代码语言:javascript
运行
复制
"address_components":[
    {
      "long_name":"Amsterdam",
      "short_name":"Amsterdam",
      "types":[
        "locality","political"
      ]
    },
    {
      "long_name":"Government of Amsterdam",
      "short_name":"Government of Amsterdam",
      "types":[
        "administrative_area_level_2","political"
      ]
    },
    {
      "long_name":"North Holland",
      "short_name":"NH",
      "types":[
        "administrative_area_level_1","political"
      ]
    },
    {
      "long_name":"Netherlands",
      "short_name":"NL",
      "types":[
        "country","political"
      ]
    }
  ]

请注意,administrative_area_level_2有一个名字‘阿姆斯特丹政府’。我知道你可能会用荷兰语来获得结果

https://maps.googleapis.com/maps/api/geocode/json?address=Amsterdam%2C%20Noord-Holland%2C%20Nederland&language=nl&key=MY_API_KEY

在这种情况下,我有:

代码语言:javascript
运行
复制
{
    "long_name":"Amsterdam",
    "short_name":"Amsterdam",
    "types":[
      "locality","political"
    ]
},
{
    "long_name":"Amsterdam",
    "short_name":"Amsterdam",
    "types":[
      "administrative_area_level_2","political"
    ]
}

所以在这一点上,荷兰版本似乎没有正确的翻译,我们有‘阿姆斯特丹政府’的英语和阿姆斯特丹的荷兰语。这是一个数据问题。顺便说一句,您可以在这里看到行政区划2级:

https://www.google.com/maps/place/Government+of+Amsterdam,+Amsterdam,+Netherlands/@52.3544136,4.7585038,11z/data=!3m1!4b1!4m5!3m4!1s0x47c63fb5949a7755:0xe4f20c148755745!8m2!3d52.3666969!4d4.8945398

第二个例子有点复杂。

https://maps.googleapis.com/maps/api/geocode/json?address=Anton%20de%20Komplein%20150%2C%201102%20CW%20Amsterdam%2C%20Noord-Holland%2C%20Nederland&key=MY_API_KEY

首先,您应该知道,对于街道地址级别的搜索,您将获得地址组件和本地语言的格式化地址,如街道地址本地化文章所述。因此,不管我们指定了哪种语言--英语还是荷兰语--我们将阿姆斯特丹视为行政区域2级--这与我们在第一个例子中所面临的数据问题完全相同--应该翻译成Google侧的“Regering van阿姆斯特丹”。

引用本地组件。很奇怪,阿姆斯特丹-Zuidoost被定义为Google数据库中的位置。我可以在屏幕截图中看到它,它看起来像一个分区:

https://www.google.com/maps/place/Amsterdam-Zuidoost,+Netherlands/@52.2569773,4.995519,12z/data=!4m5!3m4!1s0x47c60c069aab8879:0x249b64218cad1744!8m2!3d52.3079989!4d4.9715451

但是,如果在Geo编码器工具中检查这个特性,它就会清楚地声明这是一个本地特性:

id%3 3DChIJeYirmgYMxkcRRBetjCFkmyQ

注意,速度ID是ChIJeYirmgYMxkcRRBetjCFkmyQ。我相信这也可能是谷歌方面的一个数据问题。

我建议在Google帮助中心向Google数据小组发送反馈:

topic=3093612

我希望我的回答能澄清你的疑虑!

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47376079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档