iOS5 反向地理编码限制

Posted

技术标签:

【中文标题】iOS5 反向地理编码限制【英文标题】:iOS5 Reverse Geocoding Limitations 【发布时间】:2011-11-15 14:09:26 【问题描述】:

我正在使用 Apple 提供的反向地理编码(链接到本文底部的开发文档)。

我已将其设置为适用于我当前的项目。当我触摸地图时,触摸点会转换为我在反向地理编码中使用的坐标。但问题是,当我对来自欧洲、北美和南美部分地区的位置进行地理编码时,我只能获得有关地址(街道、门牌号码、国家等)的信息。在对非洲和亚洲的坐标进行反向地理编码时,我没有得到这些信息。

我使用前向地理编码(非洲和亚洲的一些随机地址)来检查是否可以在所有信息中找到这些地址。他们可以 - 前向地理编码非常出色。

那么,当我使用特别是非洲和亚洲的坐标反转地理编码时,我没有得到地址信息,这怎么可能呢?有人遇到过同样的事情吗?

http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/LocationAwarenessPG/UsingGeocoders/UsingGeocoders.html#//apple_ref/doc/uid/TP40009497-CH4-SW1)

【问题讨论】:

我找不到任何好的参考资料,但我怀疑 Apple 只有欧洲和北美的反向地理编码信息。苹果正在从谷歌转向 TomTom,后者在非洲和亚洲的影响力并不大。我想知道反向地理编码是否适用于澳大利亚的点? 很可能就是这样。反向地理编码不适用于澳大利亚的点。只会出现城市名称(缺少街道、房屋、邮政编码等)。感谢亚当的评论。 对于俄罗斯,反向地理编码也有效(在 iOS5 之前它非常不可靠),除了你没有得到邮政编码(但得到街道/房子) 【参考方案1】:

反向地理编码(参见返回的错误消息 kCLErrorGeocodeFoundPartialResult 和 kCLErrorGeocodeFoundNoResult)。很多时候,只有美国、欧洲和世界上人口稠密的城市会返回完整的反向地址信息。

当发生 kCLErrorGeocodeFoundPartialResult 时,这意味着只有一部分反向地理编码信息可用。这可能是街道名称(个人地址,意思是房子/bdlg 或地段#)不可用。这可能是越来越少的信息,只是国家名称。

这是因为与 Google 一起使用时,卫星只返回纬度和经度。由谷歌或其他地图公司提供数据点和数据点区域信息(意味着纬度/经度和跨度,建筑物将占据地址的那个点)。因为这些信息必须从世界各地的每一个城市获取,然后验证并输入数据——这是谷歌十多年来一直在积极开展的一项艰巨的任务。在这段时间里,地球上只有不到 7% 的土地进行了大部分地理编码。增加这个困难的是,美国和欧洲大部分地区在市政层面上组织得相对良好,拥有最新的地图和包裹/地块位置。对于世界上的许多其他地区来说,情况并非如此。

因此,由您(开发人员)来筛选可用信息,并根据返回的有限信息构建最有意义的注释标注信息。同样,这可能只是国家名称。

此外,如果您的用户在五大湖或哈德逊河中丢了一根大头针,请不要忘记海洋和内陆水域。

名称字段对地标也很有帮助。

是的,最终,要弄清楚如何最好地显示从反向地理编码查找返回的地标数据,还有很多事情要做,但您的用户会感谢您尝试了您能想到的所有可能性。

上述信息以及完整地理编码和部分地理编码国家/地区的列表位于 Apple 文档中。您会惊讶地发现这些列表中的国家/地区如此之少!

【讨论】:

以上是关于iOS5 反向地理编码限制的主要内容,如果未能解决你的问题,请参考以下文章

使用 CLGeocoder 反向地理编码查找当前位置

反向数据编码是啥

对交叉点进行反向地理编码

Android 反向地理编码

谷歌反向地理编码 - 如何捕捉到最近的完整邮政编码

使用 iPhone 的纬度和经度进行反向地理编码