回答
由于@ raj2raaz已经提到,我们不能通过指定地点的名称来获取坐标,您必须使用iPhone中的web服务来获取坐标。
http://iphonesdksnippets.com/post/2010/02/15/Get-Coordinates-from-Address.aspx
简短的回答是否定的,你不能给一个地址并获得经度/纬度位置。有几个人编写了使用不同Web服务的库,请参阅此答案以获取详细信息:Forward geocoding from the iPhone。
我知道你说过你不想使用各种网络服务,但是,你无法免费获得一切。有人的CPU周期将不得不进行搜索。他们中的大多数人似乎对大多数应用程序都有可接受的条款。
谢谢您的回答。 :) – Nir 2011-04-15 10:01:00
你可以,如果你包括应用程序的地方数据库。 [GeoNames](http://download.geonames.org/export/dump/)提供了这些数据。 – 2011-04-15 10:29:22
你是对的。我仍然认为答案是否定的,因为这个问题好像是在iPhone SDK中要求一个API。没有这样的API存在。您的解决方案不是SDK内的API,而是本地存储该数据的大型项目。虽然有一些限制。例如,您仅限于搜索Geonames数据库实际提供的内容。例如,没有街道名称。它也可以使应用程序的下载规模很大,除非应用程序具有目标区域。网络解决方案在许多情况下会更好。 – 2011-04-15 13:13:43
是的,这是可能的,但你必须做一些工作。我目前正在将这项工作放在我的一个项目中。 GeoNames地理数据库覆盖所有国家和包含800多万个地名,可免费下载。我将他们的cites with population over 1,0003.9M zip文件添加到我的项目中。它包含每个城市的长/纬度。我要将每个城市解析为一个自定义NSObject并将它们加载到Core Data中。
在我的项目中,我没有做城市名称搜索,而是找到一个特定的纬度/经度坐标的城市。 Haversine formula用于计算球体上两点之间的距离。这里是写在Objective-C和Perl的公式。 我目前解析该数据的进度可以找到here。我仍然有工作要完成。
我想这在技术上是“使用iPhone SDK”,但我将问题解释为要求SDK中的API进行地理编码。这似乎有点不同。但是它可能解决问题,如果“某个地方的名字”是一个相当小的可能性列表,那么它将工作得很好。 – 2011-04-15 13:18:55
您可以通过调用此方法来获取坐标。此方法需要地址(地点名称)。
-(CLLocationCoordinate2D) addressLocation:(NSString *)addrss {
NSString *urlString = [NSString stringWithFormat:@"http://maps.google.com/maps/geo?q=%@&output=csv",
[addrss stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSString *locationString = [NSString stringWithContentsOfURL:[NSURL URLWithString:urlString]];
NSArray *listItems = [locationString componentsSeparatedByString:@","];
double latitude = 0.0;
double longitude = 0.0;
if([listItems count] >= 4 && [[listItems objectAtIndex:0] isEqualToString:@"200"]) {
latitude = [[listItems objectAtIndex:2] doubleValue];
longitude = [[listItems objectAtIndex:3] doubleValue];
}
else {
//Show error
}
CLLocationCoordinate2D location;
location.latitude = latitude;
location.longitude = longitude;
return location;
}
CLGeocoder *geocoder = [[CLGeocoder alloc] init];
[geocoder geocodeAddressString:YOUR_LOCATION completionHandler:^(NSArray* placemarks, NSError* error)
{
NSLog(@"completed");
if (error)
{
NSLog(@"error = %@", error);
}
else
{
//Here you get information about the place in placemarks array
}
}];
- 1. 通过提供lat和long获取地点名称
- 2. 从坐标获取当前地点名称(在nsstring中)
- 3. 通过坐标获取gmaps中的公路名称
- 4. 通过坐标获取地形类型
- 5. 通过触摸地图来获取谷歌坐标。 iPhone
- 6. 如何通过道路名称获取道路坐标
- 7. Swift通过名称获取城市坐标
- 8. 通过名称调用演员并获取它们的坐标
- 9. 从谷歌地图中的地区名称获取坐标Api
- 10. 通过地址或GPS坐标获取最近的商家名称/类型
- 11. 从取坐标获取位置名称
- 12. 通过点击地图上的Windows Phone 8获取坐标?
- 13. 如何通过点击谷歌地图获取坐标
- 14. 通过点击地图获取坐标(openstreetmaps)
- 15. 通过商业名称在谷歌地图上获取标记
- 16. 如何通过提供用户标识获取用户组名称
- 17. 通过DOM中的标记名称获取子节点
- 18. 从iphone上的mkmapview获取点坐标
- 19. Gigya Socialize ShareBar API在点击提供商处获取提供商名称
- 20. 从GPS坐标获取城市名称
- 21. 从坐标获取位置名称?
- 22. 在Delphi中通过名称获取类
- 23. 如何通过在DataTable中提供列名来获取行值
- 24. 如何从街道名称,地名或城市名称获取GPS坐标
- 25. 鼠标点击无法提供坐标
- 26. 获取地点名称通过将经度和纬度的Android
- 27. Facebook - 通过位置名称获取位置/地点ID
- 28. 以winforms获取ISP提供商名称?
- 29. 获取名称,:通过
- 30. 如何通过使用本地url获取卷名称(标签)?
@NewTolphone:我觉得我们不能.. – SNR 2011-04-15 09:44:43
是u能得到cordinates如果你这个地方的名字(基本上解决) – Gypsa 2011-04-15 10:52:40