2

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

我遇到了 MKReverseGeocoder,它需要很长和 lat,告诉你你在哪个城市附近。例如

// reverse geocode the user location

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

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

4

4 回答 4

2

但必须有一个苹果函数来处理这个

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

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

于 2010-10-17T11:36:56.250 回答
2

iOS5 SDK 添加了对正向和反向地理编码的支持。查看CLGeocoder 类以获取更多信息。

于 2012-02-10T19:41:48.413 回答
2

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

于 2010-10-17T12:49:36.340 回答
1

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

我见过三种服务。

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

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

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

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

于 2010-10-17T13:11:53.317 回答