iOS - 调起系统自带地图导航

CLGeocoder *geocoder = [[CLGeocoder alloc]init];

 [geocoder geocodeAddressString:self->model.address completionHandler:^(NSArray *placemarks, NSError *error) {
        //获取目标位置
        CLPlacemark *clPlacemark1=[placemarks firstObject];//获取第一个地标
        //
//        MKPlacemark *mkPlacemark1=[[MKPlacemark alloc]initWithPlacemark:clPlacemark1]; //注意地理编码一次只能定位到一个位置,不能同时定位,所在放到第一个位置定位完成回调函数中再次定位
        [geocoder geocodeAddressString:self->model.address completionHandler:^(NSArray *placemarks, NSError *error) { CLPlacemark *clPlacemark2=[placemarks firstObject];//获取第一个地标
            
            MKPlacemark *mkPlacemark2=[[MKPlacemark alloc]initWithPlacemark:clPlacemark2];
            //当前位置
            MKMapItem *mapItem1=[MKMapItem mapItemForCurrentLocation];
            //目标
            MKMapItem *mapItem2=[[MKMapItem alloc]initWithPlacemark:mkPlacemark2];
            //MKMapItem *mapItem2=[[MKMapItem alloc]initWithPlacemark:mkPlacemark1];
            [MKMapItem openMapsWithItems:@[mapItem1,mapItem2] launchOptions:@{MKLaunchOptionsDirectionsModeKey: MKLaunchOptionsDirectionsModeDriving,
                                                                              MKLaunchOptionsShowsTrafficKey: [NSNumber numberWithBool:YES]}];}]; 
}];

这个方法是根据手机地理位置不同 调起 系统自带导航 大多数都是谷歌

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容