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

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

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

【问题讨论】:

  • 已经做了,一个答案指向 CLGeocoder 但没有显示任何内容。那里的解决方案是pre-iOS5。现在,我们将地理编码作为内置解决方案提供。

标签: iphone objective-c ios xcode clgeocoder


【解决方案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 公里
猜你喜欢
  • 2012-02-09
  • 2012-08-30
  • 2020-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多