如何在iphone上找到一个城市的长距离?

时间:2010-10-17 11:22:54

标签: iphone geolocation cllocation

我试图在iphone上找到一个城市的长路和纬线。假设用户正在搜索伦敦,我会调用一些功能来检索伦敦的长途和拉特。我在网上看了一下,发现你可以使用谷歌API,但必须有一个苹果功能来处理这个问题?

我来到了MKReverseGeocoder,它接受了长途和拉特,告诉你你附近的城市。 e.g。

// reverse geocode the user location

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

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

4 个答案:

答案 0 :(得分:2)

  

但必须有某个Apple功能来处理这个

为什么必须有?因为没有。

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

答案 1 :(得分:2)

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

答案 2 :(得分:2)

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

答案 3 :(得分:1)

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

我见过三种服务。

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

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

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

除此之外,你将要从设备上调用一些东西。顺便说一下,当你使用MKReverseGeocoder时,这就是Google反向地理编码服务的包装。