7

我正在使用http://maps.google.com/maps/geo?用于对某些地址进行地理编码的 Web 服务。

我遇到的问题是,更完整的地址不一定能提供更准确的地理编码。

例如,在英国登比郡 Llantysilio 的传递比英国登比郡 Llangollen 的 Llantysilio 准确得多

XML 中的 Accuracy 属性在决定选择哪个地址时似乎没有多大帮助。

其他人是如何处理这个问题的?有没有一种好方法可以选择最/所有时间都有效的最佳地理编码?

*编辑一些额外的信息——当我输入更完整的地址时,地址的第一行被忽略,地理编码器跳转到一个不同但准确的地址,该地址是位于添加到地址的额外行中的中央街道。在这个例子中,它选择了中间 llangollen 的 Castle Street,似乎忽略了 Llantysilio。

由 kdgregory 编辑:这是我使用的两个 API 请求(缺少 API 密钥似乎不是问题):

http://maps.google.com/maps/geo?q=Llantysilio,+Denbighshire,+UK&sensor=false&output=xml

http://maps.google.com/maps/geo?q=Llantysilio,Llangollen,++Denbighshire,+UK&sensor=false&output=xml
4

5 回答 5

4

你必须解释我的朋友的准确性。精度通常有两个部分,首先是地址匹配。第二部分是重要的部分。您可以对某些内容进行地理编码,使其达到美国的精度级别、城市级别、邮政编码质心、街道插值级别或实际包裹精度级别。第一个例子是 4,第二个例子是 9。对于这个服务,越高越好。

精度 值 描述 0 未知精度。1 国家层面的准确性。2 地区(州、省、州等)级精度。3 分区域(县、市等)级精度。4 镇(市、村)级精度。5 邮政编码(邮政编码)级别的准确性。6 街道级精度。7 交叉口水平精度。8 地址级别的准确性。9 前提(建筑物名称、物业名称、购物中心等)级别的准确性。

于 2009-08-17T14:24:25.313 回答
1

值得注意的是,Google不遵循 XAL 规范,而是在一个子集中实现它们。

因此,这意味着您不一定能够做到:

place.AddressDetails.Country.AdministrativeArea.Locality.LocalityName
place.AddressDetails.Country.AdministrativeArea.AdministrativeAreaName
place.AddressDetails.Country.CountryName

因为可能会提供一个国家和地区,而没有提供行政区域。

返回的数据使用准确度表进行标识,该准确度表可让您对数据的期望值有一个相对的了解。因此,您可以使用此变量存储对象并截断部分完整地址,并尝试以这种方式进行地理编码 - 但不建议这样做。

通常,完整的地址(不包括通道)是查找大致位置的好方法。您可以使用 Google 提供的一些加权优先逻辑来优化地址。

例如,使用 setViewPort 或 setCountryCode 让您的搜索更加准确。

请记住,地理编码不是一门科学。你不能期望一致的结果。

于 2009-08-15T22:52:48.110 回答
0

通过 gmap 对 response.Placemark[0] 进行地理编码,您可以检查所获得的内容,然后进行关卡或重试。我在订单中选择了默认

place.AddressDetails.Country.AdministrativeArea.Locality.LocalityName
place.AddressDetails.Country.AdministrativeArea.AdministrativeAreaName
place.AddressDetails.Country.CountryName

如上所示,它可以更合乎逻辑地命名。gmaps 3 与 v2 有点不兼容。

于 2009-08-10T23:01:13.707 回答
0

您可以尝试一个非常丑陋的 hack,其中包括对您的完整地址和您的地址包含的单词的所有子集进行地理编码,您会获得很多地理编码,用于通过反向地理编码工具获取与它们相关的地址。一旦你有很多地址,你就可以将它们与你第一次给出的地址进行比较,然后你就可以得到最准确的地理编码......许多请求,随着你添加到地址的每个单词而不断增长,这是一个丑陋的工作,但可能很有趣做一些统计^^

于 2009-08-13T12:29:57.030 回答
0

最后我得出的结论是,在地址与谷歌在英国的地理编码网络服务的一致性方面有太多奇怪的问题,但最终设法找到了一种使用邮政编码的方法,这要准确得多:它是如何完成的

于 2009-11-29T21:39:22.400 回答