iOS APP內(nèi)調(diào)起第三方地圖

1.根據(jù)你手機(jī)上有沒有安裝這個(gè)地圖應(yīng)用,沒有就不會(huì)出現(xiàn)。

- (BOOL)canOpenURL:(NSURL*)url NS_AVAILABLE_IOS(3_0);

2.在IOS9之后,蘋果進(jìn)一步完善了安全機(jī)制,必須在plist里面設(shè)置url scheme白名單,不然無(wú)法打開對(duì)應(yīng)的應(yīng)用

3.判斷并裝入數(shù)組

-?(NSArray*)getInstalledMapAppWithEndLocation:(CLLocationCoordinate2D)endLocation

{

NSMutableArray*maps?=?[NSMutableArrayarray];

//蘋果地圖

NSMutableDictionary*iosMapDic?=?[NSMutableDictionarydictionary];

iosMapDic[@"title"]?=@"蘋果地圖";

[mapsaddObject:iosMapDic];

//百度地圖

if([[UIApplicationsharedApplication]canOpenURL:[NSURLURLWithString:@"baidumap://"]])?{

NSMutableDictionary*baiduMapDic?=?[NSMutableDictionarydictionary];

baiduMapDic[@"title"]?=@"百度地圖";

NSString*urlString?=?[[NSStringstringWithFormat:@"baidumap://map/direction?origin={{我的位置}}&destination=latlng:%f,%f|name=北京&mode=driving&coord_type=gcj02",endLocation.latitude,endLocation.longitude]stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

baiduMapDic[@"url"]?=?urlString;

[mapsaddObject:baiduMapDic];

}

//高德地圖

if([[UIApplicationsharedApplication]canOpenURL:[NSURLURLWithString:@"iosamap://"]])?{

NSMutableDictionary*gaodeMapDic?=?[NSMutableDictionarydictionary];

gaodeMapDic[@"title"]?=@"高德地圖";

NSString*urlString?=?[[NSStringstringWithFormat:@"iosamap://navi?sourceApplication=%@&backScheme=%@&lat=%f&lon=%f&dev=0&style=2",@"導(dǎo)航功能",@"nav123456",endLocation.latitude,endLocation.longitude]stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

gaodeMapDic[@"url"]?=?urlString;

[mapsaddObject:gaodeMapDic];

}

//谷歌地圖

if([[UIApplicationsharedApplication]canOpenURL:[NSURLURLWithString:@"comgooglemaps://"]])?{

NSMutableDictionary*googleMapDic?=?[NSMutableDictionarydictionary];

googleMapDic[@"title"]?=@"谷歌地圖";

NSString*urlString?=?[[NSStringstringWithFormat:@"comgooglemaps://?x-source=%@&x-success=%@&saddr=&daddr=%f,%f&directionsmode=driving",@"導(dǎo)航測(cè)試",@"nav123456",endLocation.latitude,?endLocation.longitude]stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

googleMapDic[@"url"]?=?urlString;

[mapsaddObject:googleMapDic];

}

//騰訊地圖

if([[UIApplicationsharedApplication]canOpenURL:[NSURLURLWithString:@"qqmap://"]])?{

NSMutableDictionary*qqMapDic?=?[NSMutableDictionarydictionary];

qqMapDic[@"title"]?=@"騰訊地圖";

NSString*urlString?=?[[NSStringstringWithFormat:@"qqmap://map/routeplan?from=我的位置&type=drive&tocoord=%f,%f&to=終點(diǎn)&coord_type=1&policy=0",endLocation.latitude,?endLocation.longitude]stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

qqMapDic[@"url"]?=?urlString;

[mapsaddObject:qqMapDic];

}

returnmaps;

}

4.底部彈窗

UIActionSheet*myActionSheet = [[UIActionSheetalloc]init];

myActionSheet.delegate = self;

[myActionSheetaddButtonWithTitle:@"取消"];

[myActionSheetshowInView:[UIApplicationsharedApplication].keyWindow];

#pragma mark - UIActionSheetDelegate

- (void)actionSheet:(UIActionSheet*)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex

{

?if(buttonIndex != -1) {

if(buttonIndex?==0)?{

[selfnavAppleMap];

return;

}

NSDictionary*dic =self.maps[buttonIndex];

NSString*urlString = dic[@"url"];

[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:urlString]];

}

}

//蘋果地圖

-?(void)navAppleMap

{

CLLocationCoordinate2D?gps?=?[JZLocationConverterbd09ToWgs84:self.destinationCoordinate2D];

MKMapItem*currentLoc?=?[MKMapItemmapItemForCurrentLocation];

MKMapItem*toLocation?=?[[MKMapItemalloc]initWithPlacemark:[[MKPlacemarkalloc]initWithCoordinate:gpsaddressDictionary:nil]];

NSArray*items?=?@[currentLoc,toLocation];

NSDictionary*dic?=?@{

MKLaunchOptionsDirectionsModeKey?:?MKLaunchOptionsDirectionsModeDriving,

MKLaunchOptionsMapTypeKey?:?@(MKMapTypeStandard),

MKLaunchOptionsShowsTrafficKey?:?@(YES)

};

[MKMapItemopenMapsWithItems:itemslaunchOptions:dic];

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容