Iphone 使用Latitude&;经度

Iphone 使用Latitude&;经度,iphone,geolocation,reverse-geocoding,Iphone,Geolocation,Reverse Geocoding,我有一个iPhone应用程序,需要找出当前位置(城市名称或可能的地址)。但我没能做到。我可以查到现在的经纬度。如果我提供纬度和经度,是否有任何web服务(最好是免费的)可以返回我当前的位置名称?您要查找的功能被调用 是提供此功能的web服务的列表 最流行的两种是,用于批量处理多个坐标。您要查找的功能称为 是提供此功能的web服务的列表 最流行的有两种,用于批量处理多个坐标。假设您的目标是iPhone OS 3.0或更高版本,您可以使用MapKit框架中的MKReverseGeocoder。开发人

我有一个iPhone应用程序,需要找出当前位置(城市名称或可能的地址)。但我没能做到。我可以查到现在的经纬度。如果我提供纬度和经度,是否有任何web服务(最好是免费的)可以返回我当前的位置名称?

您要查找的功能被调用

是提供此功能的web服务的列表


最流行的两种是,用于批量处理多个坐标。

您要查找的功能称为

是提供此功能的web服务的列表


最流行的有两种,用于批量处理多个坐标。

假设您的目标是iPhone OS 3.0或更高版本,您可以使用MapKit框架中的
MKReverseGeocoder
。开发人员文档包括一个示例项目

假设您的目标是iPhone OS 3.0或更高版本,您可以使用MapKit框架中的
MKReverseGeocoder
。开发人员文档包括一个示例项目

MKReverseGeocoder是一个很好的类,但有时可能会返回错误: 错误域=PBRequesterErrorDomain代码=6001“操作无法完成。(PBRequesterErrorDomain错误6001。)

上面Luviere的建议是一个很好的起点,这就是我使用Google HTTP反向地理编码器所做的示例。下面是我编写的GoogleReverseGeocoder类的实现。可以找到关于如何使用它的完整解释


MKReverseGeocoder是一个很好的类,但有时可能会返回错误: 错误域=PBRequesterErrorDomain代码=6001“操作无法完成。(PBRequesterErrorDomain错误6001。)

上面Luviere的建议是一个很好的起点,这就是我使用GoogleHTTP反向地理编码器所做的示例。这是我编写的GoogleReverseGeocoder类的实现。可以找到关于如何使用它的完整说明

想自己做吗?

这些服务中的大多数你将不得不支付一千个限制。也许你可以有自己的州和城市列表,以及它们已知的纬度和经度

不要试图自己建立列表。例如,该项目是一个巴西州和城市数据库:

5.570个城市的列表小到430KB!考虑到您必须存储的数据量以及从中获得的好处,这是完全值得的

因此,最好的办法是从你的国家找到一个类似的项目并付诸实施

现在我有了自己的城市列表,我可以让用户知道最近的5个城市,或者做任何我想做的事情。用这个简单的查询我的应用程序MySQL数据库!看,多么简单却又强大

set @lat=-20.0080509185791;
set @lng=-44.003021240234375;

-- The main SQL query that returns the closest 5 airports.
SELECT id, nome, lat, lng, 111.045 * DEGREES(ACOS(COS(RADIANS(@lat))
 * COS(RADIANS(lat))
 * COS(RADIANS(lng) - RADIANS(@lng))
 + SIN(RADIANS(@lat))
 * SIN(RADIANS(lat))))
 AS distance_in_km
FROM cities
ORDER BY distance_in_km ASC
LIMIT 0,5;
想自己做吗?

这些服务中的大多数你将不得不支付一千个限制。也许你可以有自己的州和城市列表,以及它们已知的纬度和经度

不要试图自己建立列表。例如,该项目是一个巴西州和城市数据库:

5.570个城市的列表小到430KB!考虑到您必须存储的数据量以及从中获得的好处,这是完全值得的

因此,最好的办法是从你的国家找到一个类似的项目并付诸实施

现在我有了自己的城市列表,我可以让用户知道最近的5个城市,或者做任何我想做的事情。用这个简单的查询我的应用程序MySQL数据库!看,多么简单却又强大

set @lat=-20.0080509185791;
set @lng=-44.003021240234375;

-- The main SQL query that returns the closest 5 airports.
SELECT id, nome, lat, lng, 111.045 * DEGREES(ACOS(COS(RADIANS(@lat))
 * COS(RADIANS(lat))
 * COS(RADIANS(lng) - RADIANS(@lng))
 + SIN(RADIANS(@lat))
 * SIN(RADIANS(lat))))
 AS distance_in_km
FROM cities
ORDER BY distance_in_km ASC
LIMIT 0,5;

注意:您必须在应用程序中显示的地图中使用此信息才能停留在Google TOS中。注意:您必须在应用程序中显示的地图中使用此信息才能停留在Google TOS中。