今天有個(gè)外賣的app要加導(dǎo)航去商戶地址的功能链快,就簡(jiǎn)單的寫了下調(diào)用目前用的比較廣泛的三個(gè)地圖的一鍵導(dǎo)航,還是一如既往的簡(jiǎn)單,github上又完善了一下功能:高德地圖自定義大頭針和氣泡眉尸,點(diǎn)擊氣泡按鈕導(dǎo)航
demo已上傳到github上:https://github.com/15294871542/EasyMapNavi
//百度地圖 文檔地址:http://lbsyun.baidu.com/index.php?title=uri/api/ios
//騰訊地圖 文檔地址:http://lbs.qq.com/uri_v1/guide-route.html(前面的qqmap://需換一下表示app調(diào)用)
//高德地圖 文檔地址:http://lbs.amap.com/api/amap-mobile/gettingstarted
需要注意的就是需要在info.plist里面(LSApplicationQueriesSchemes)添加這三個(gè)地圖的scheme:百度:baidumap 騰訊:qqmap 高德:iosamap
直接上關(guān)鍵代碼域蜗,參數(shù)什么的可以去github或者下面的地圖文檔上看,另外調(diào)用的時(shí)候需要先判斷手機(jī)上是否安裝了要用的地圖,在這兒我就不粘代碼了噪猾,demo里也有霉祸。
//蘋果手機(jī)自帶地圖-(void)iphoneMap:(NSDictionary*)dic
{//起點(diǎn)CLLocationCoordinate2D from =CLLocationCoordinate2DMake([dic[@"start_lat"] doubleValue],[dic[@"start_lng"] doubleValue]);
MKMapItem *currentLocation = [[MKMapItem alloc] initWithPlacemark:[[MKPlacemark alloc] initWithCoordinate:from addressDictionary:nil]];
currentLocation.name=dic[@"start_address"];//終點(diǎn)CLLocationCoordinate2D to =CLLocationCoordinate2DMake([dic[@"end_lat"] doubleValue],[dic[@"end_lng"] doubleValue]);
MKMapItem *toLocation = [[MKMapItem alloc] initWithPlacemark:[[MKPlacemark alloc] initWithCoordinate:to addressDictionary:nil]];
toLocation.name= dic[@"end_address"];NSArray*items = [NSArrayarrayWithObjects:currentLocation, toLocation,nil];NSDictionary*options =@{
MKLaunchOptionsDirectionsModeKey:MKLaunchOptionsDirectionsModeDriving,
MKLaunchOptionsMapTypeKey:
[NSNumbernumberWithInteger:MKMapTypeStandard],
MKLaunchOptionsShowsTrafficKey:@YES
};//打開蘋果自身地圖應(yīng)用[MKMapItem openMapsWithItems:items launchOptions:options];
}//百度地圖-(void)baiduMap:(NSDictionary*)dic
{NSString* urlString=[[NSStringstringWithFormat:@"baidumap://map/direction?origin={{我的位置}}&destination=latlng:%@,%@|name:%@&mode=driving&coord_type=gcj02&src=webapp.navi.wanglu.etravel",dic[@"end_lat"],dic[@"end_lng"],dic[@"end_address"]] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[[UIApplicationsharedApplication] openURL:[NSURLURLWithString:urlString]];
}//騰訊地圖-(void)tencentMap:(NSDictionary*)dic
{NSString* urlString=[[NSStringstringWithFormat:@"qqmap://map/routeplan?type=drive&from=我的位置&tocoord=%@,%@&to=%@&policy=1",dic[@"end_lat"],dic[@"end_lng"],dic[@"end_address"]] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[[UIApplicationsharedApplication] openURL:[NSURLURLWithString:urlString]];
}//高德地圖-(void)gaodeMap:(NSDictionary*)dic
{NSURL* url = [NSURLURLWithString:[NSStringstringWithFormat:@"iosamap://navi?sourceApplication=etravel&backScheme=etravel&lat=%@&lon=%@&dev=0&style=2",dic[@"end_lat"],dic[@"end_lng"]]];if([[UIDevice currentDevice].systemVersionintegerValue] >=10) {//iOS10以后,使用新API[[UIApplicationsharedApplication] openURL:url options:@{} completionHandler:^(BOOLsuccess) {NSLog(@"scheme調(diào)用結(jié)束");
}];
}else{//iOS10以前,使用舊API[[UIApplicationsharedApplication] openURL:url];
}
}