美文网首页
进阶 13-5 通过地理编码调用系统地图地位

进阶 13-5 通过地理编码调用系统地图地位

作者: 轩洛 | 来源:发表于2016-07-15 21:18 被阅读0次


#import "GeocoderTwoViewController.h"
#import <CoreLocation/CoreLocation.h>
#import <MapKit/MapKit.h>
@interface GeocoderTwoViewController ()
/*  地标 */
@property (strong,nonatomic) CLGeocoder *geocoder;
@end

@implementation GeocoderTwoViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.geocoder = [[CLGeocoder alloc] init];
    [self location_1];
    [self Location_2];
}


#pragma mark --- 确定一个城市的位置 ---
- (void)location_1{
    [self.geocoder geocodeAddressString:@"北京市" completionHandler:^(NSArray<CLPlacemark *> * placemarks, NSError * error) {
        //获取第一个地标
        CLPlacemark *CLPlaceMark = [placemarks firstObject];
        
        //将定位地标转换为地图地标
        MKPlacemark *MKplaceMark = [[MKPlacemark alloc] initWithPlacemark:CLPlaceMark];
        
        //字典中放一个地图类型
        NSDictionary *Options = @{MKLaunchOptionsMapTypeKey:@(MKMapTypeStandard)};
        //初始化地图组
        MKMapItem *mapItem = [[MKMapItem alloc] initWithPlacemark:MKplaceMark];
        //打开地图,根据地图类型
        [mapItem openInMapsWithLaunchOptions:Options];
        
    }];
}

- (void)Location_2{
    [self.geocoder geocodeAddressString:@"北京市" completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) {
        //获取第一个地标
        CLPlacemark *CLPlaceMarkBJ = [placemarks firstObject];
        //将定位地标转换为地图地标
        MKPlacemark *MKPlaceMarkBJ = [[MKPlacemark alloc] initWithPlacemark:CLPlaceMarkBJ];
        
        [self.geocoder geocodeAddressString:@"九龙" completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) {
            //获取第一个地标
            CLPlacemark *CLPlaceMarkWA = [placemarks firstObject];
            //将定位地标转换为地图地标
            MKPlacemark *MKPlaceMarkWA = [[MKPlacemark alloc] initWithPlacemark:CLPlaceMarkWA];
            //字典中放一个地图类型
            NSDictionary *Options = @{MKLaunchOptionsMapTypeKey:@(MKMapTypeStandard)};
            MKMapItem *item1 = [[MKMapItem alloc] initWithPlacemark:MKPlaceMarkBJ];
            MKMapItem *item2 = [[MKMapItem alloc] initWithPlacemark:MKPlaceMarkWA];
            [MKMapItem openMapsWithItems:@[item1,item2] launchOptions:Options];
        }];
    }];
}
@end

相关文章

网友评论

      本文标题:进阶 13-5 通过地理编码调用系统地图地位

      本文链接:https://www.haomeiwen.com/subject/vynyjttx.html