使用 CLGeocoder 的正向地理编码示例

Posted

技术标签:

【中文标题】使用 CLGeocoder 的正向地理编码示例【英文标题】:Forward Geocode Example using CLGeocoder 【发布时间】:2012-03-19 13:37:50 【问题描述】:

Apple 文档旁边的工作示例说明或有关如何使用正向地理编码的一些指导。这很笼统(我无法理解)

请,这会很棒!还有谁知道他们是使用 Google API 来实现相同的还是他们自己的?

【问题讨论】:

***.com/questions/1140404/…,试试看 已经做了,一个答案指向 CLGeocoder 但没有显示任何内容。那里的解决方案是pre-ios5。现在,我们将地理编码作为内置解决方案提供。 【参考方案1】:

发现这个有用,不过如果其他人觉得有用,我会在这里发布。

CLGeocoder *geocoder = [[CLGeocoder alloc] init];
    [geocoder geocodeAddressString:PlaceName.text completionHandler:^(NSArray *placemarks, NSError *error) 
        //Error checking

        CLPlacemark *placemark = [placemarks objectAtIndex:0];
        MKCoordinateRegion region;
        region.center.latitude = placemark.region.center.latitude;
        region.center.longitude = placemark.region.center.longitude;
        MKCoordinateSpan span;
        double radius = placemark.region.radius / 1000; // convert to km

        NSLog(@"Radius is %f", radius);
        span.latitudeDelta = radius / 112.0;

        region.span = span;

        [mapView setRegion:region animated:YES];
    ];

【讨论】:

根据 Map Kit Data Types Reference,在 MKCoordinateSpan Apple 下的注释:一个纬度始终约为 111 公里(69 英里)。不过还没有验证这是否属实。 @AliakseiN。我没有注意到你的评论。 112不是魔术。如果你将 1 度转换为公里,你会得到这个 @carbonr 1° 纬度 = 69.047 法定英里 = 60 海里 = 111.12 公里

以上是关于使用 CLGeocoder 的正向地理编码示例的主要内容,如果未能解决你的问题,请参考以下文章

CLGeocoder 转发地理编码邮政编码

对许多地址进行地理编码 - CLGeocoder

使用 CLGeocoder 反向地理编码查找当前位置

基于CLGeocoder - 地理编码

CLGeocoder 反向地理编码失败,错误域=NSURLErrorDomain 代码=-1000 -

CLGeocoder 反向地理编码位置。第一次在 [placemarks count = 0]?