進階 13-5 通過地理編碼調用系統地圖地位



#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
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容