【问题标题】:How to find the long and lat of a city on the iphone?如何在iphone上找到一个城市的经纬度?
【发布时间】:2010-10-17 11:22:54
【问题描述】:

我正在尝试在 iPhone 上查找城市的经纬度。假设用户正在搜索伦敦,我会调用一些函数来检索伦敦的经度和纬度。我在网上查看过,发现您可以使用 Google API,但必须有一个 Apple 函数来处理这个问题?

我遇到了 MKReverseGeocoder,它需要经纬度,并告诉你你在哪个城市附近。例如

// reverse geocode the user location

geocoder = [[[MKReverseGeocoder alloc] initWithCoordinate:mapView.userLocation.location.coordinate] autorelease];

如果它可以逆转这个过程,一定有某种形式的 MKGeocoder 类?

【问题讨论】:

    标签: iphone geolocation cllocation


    【解决方案1】:

    但必须有一个 Apple 函数来处理这个问题

    为什么一定要有?因为没有。

    您可以使用许多网络服务(例如 Google),或者您可以下载地名数据库(例如 http://www.geonames.org/)并将其导入您的应用程序。最好将其导入 SQL 数据库,然后您可以从您的应用中进行搜索。

    【讨论】:

    • 地名数据库比谷歌更可行,因为它可以离线工作。一定有Apple的方式,如果我进入标准的Map APP,我可以搜索London,然后在伦敦市中心的地图上找到漂亮的pin drop?如果他们能做到这一点,我们必须能够使用相同的方法。
    • 苹果可以做很多第三方开发者做不到的事情。我假设苹果使用谷歌的地理编码服务。这是有道理的,因为地图应用无论如何都不能离线工作。
    • 谢谢 Ole,我玩过 Geonames,我很高兴您可以快速简单地获得结果,只需点击 URL geonames.org/search.html?q=london,您就会在第一个结果中获得纬度和经度.您还可以使用数据库下载 (download.geonames.org/export/dump) 并拥有离线版本。
    【解决方案2】:

    OpenStreetMap。它使您可以更灵活地访问其数据。您可以使用所需的信息预先填充 CoreData 存储。
    有一些 api-clients,即route-mecloudmade

    【讨论】:

      【解决方案3】:

      iOS5 SDK 添加了对正向和反向地理编码的支持。查看CLGeocoder class 课程以了解更多信息。

      【讨论】:

        【解决方案4】:

        首先,放弃“必须”有 Apple 方式。真的没有。如果您不相信我和我将近 2k 的经验值,请听听 Ole 和他的 13k。

        我见过三种服务。

        我尝试了 Google 的地理编码 API。这很不错,但有点复杂,而且它们会非常严厉地限制您的查询。

        然后我尝试了 MapQuest,我发现它非常出色。下个月左右,我有两个应用程序绑定到应用商店,它们使用 MapQuest 的 API。

        然后我找到了 Geonames,我对此印象非常深刻,但还没有机会使用。请注意,Geonames 允许您下载他们的数据,因此如果您确实需要无网络服务,这可能是一个解决方案。

        除此之外,您还需要从设备上调用某些内容。顺便说一句,当您使用 MKReverseGeocoder 时,您就是其中之一——它只是 Google 反向地理编码服务的一个包装器。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多