在 iPhone 上进行反向地理编码 - 获取准确的街道号码

Posted

技术标签:

【中文标题】在 iPhone 上进行反向地理编码 - 获取准确的街道号码【英文标题】:reverse geocoding on the IPhone - getting exact street numbers 【发布时间】:2012-07-26 14:07:56 【问题描述】:

我们正在为 iPhone (ios5) 构建一系列应用程序,我们在其中使用反向地理编码。大多数时候,CLGeocoder 返回地址编号的范围(例如“someaddress 2-5”)。我们希望为每个反向地理编码请求检索确切街道号码。

据我了解,这不是由我作为开发人员控制,而是由 Apple 控制,Apple 会调用 Google 并返回结果(街道号码的范围)。有没有其他人遇到过同样的问题并找到了解决方案?

我被建议做的一个解决方案是购买 google maps API for business。在其文档中,它声明它提供“高级地理编码”,但没有提供反向地理编码和街道编号的详细信息。有人对这个 API 有任何经验吗?

想到的另一件事是使用一些进行反向地理编码的第三方服务。但我不确定苹果是否会接受它。是否有人必须建议第三方服务进行反向地理编码并返回地图上给定位置的确切街道编号?

提前谢谢你

【问题讨论】:

【参考方案1】:

看起来GeoNames 可以很好地满足您的需求。

来自Wikipedia page:

GeoNames 是一个地理数据库,可通过 各种网络服务,根据知识共享署名许可。

我自己一直在使用CLGeocoder,并且在返回一系列街道号码时没有遇到任何问题。

【讨论】:

我没有正确发布详细信息。应用程序一启动,我就通过 CLGeocoder 跟踪用户的位置,并将其显示在带有 merker 的 mapView 上。之后,用户可以在 mapView 上重新定位标记并将地址显示给用户(每次更改标记时都必须显示新地址)。所以这不是 CLGeocoder 问题,而是 mapView 问题。 另一个可能影响性能的因素是国家。我主要关心希腊,也许其他国家会给出更好的结果。我会检查 GeoNames 谢谢 嗯...好吧,它仍然可能是 CLGeocoder 问题。因为当用户拖动图钉时,您会得到图钉的坐标,然后对地址进行反向地理编码,不是吗?此外,CLGeocoder 类参考:(developer.apple.com/library/ios/#technotes/tn2289/_index.html) 表明它在希腊受支持。 嗨,伊米拉克。是的,你是对的,这正是我所做的。但我说的是我认为我对收到的结果没有任何权力。我调用方法 reverseGeocodeLocation:completionHandler: 并将我从地图区域中心获取的纬度/经度作为位置参数传递。我从地图上获取的纬度/经度非常准确(6 位数),但我得到的结果仍然不准确(我大部分时间都会收到一系列街道号码)。你知道有什么方法可以让 CLGeocoder 更精确吗?? 这很奇怪。我想这可能与您的位置有关。你有很好的联系吗?您是否尝试过在其他任何地方进行测试?

以上是关于在 iPhone 上进行反向地理编码 - 获取准确的街道号码的主要内容,如果未能解决你的问题,请参考以下文章

在 iphone dev 的反向地理编码器中获取奇怪的输出

反向地理编码位置:比范围更准确

谷歌地图反向地理编码不返回正确/准确的地址

iPhone地理编码

iPhone增强现实应用程序中最有用的地理编码服务/方法?

如何在iphone中实现前向地理编码