百度地图API接口,请参考:http://developer.baidu.com/map/uri-introios.htm
利用百度地图有两种方式来进行路径规划。
一是通过调用app来进行路径规划,二是通过url来访问。
调用app:baidumap://map/
通过url来访问:http://api.map.baidu.com/
// 打开网页和调用webView的URL是一样的。
对调用app直接进行导航代码在最下面。
- (void)goThere{
NSString *placeName;
NSString *urlStr;
CLLocationCoordinate2D coor2;
NSLog(@"self.dataFrom is %d",self.dataFrom);
if (self.dataFrom ==FROM_NET) {
placeName = [NSStringstringWithFormat:@"%@%@",data[@"location"],data[@"shop_name"]];
coor2.latitude = [[[dataobjectForKey:@"gps"]objectAtIndex:1]floatValue];
coor2.longitude = [[[dataobjectForKey:@"gps"]objectAtIndex:0]floatValue];
}
else{
placeName = [NSStringstringWithFormat:@"%@%@",data[@"address"],data[@"shop_name"]];
coor2.latitude = [data[@"gps"][@"latitude"]floatValue];
coor2.longitude = [data[@"gps"][@"longitude"]floatValue];
}
NSURL *textURL = [NSURLURLWithString:[@"baidumap://"stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
if ([[UIApplicationsharedApplication] canOpenURL:textURL])
{
NSLog(@"可以掉启百度地图app");
urlStr = [NSStringstringWithFormat:@"baidumap://map/direction?origin=latlng:%f,%f|name:我的位置&destination=latlng:%f,%f|%@&mode=transit®ion=北京&output=html&src=com.91ganlan.haibao",_latitude,_longitude, coor2.latitude,coor2.longitude,placeName];
NSString * urlString = [urlStrstringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *mapUrl = [NSURLURLWithString:urlString];
[[UIApplicationsharedApplication] openURL:mapUrl];
}
else
{
NSLog(@"NO baiduMap");
urlStr = [NSStringstringWithFormat:@"http://api.map.baidu.com/direction?origin=latlng:%f,%f|name:我的位置&destination=latlng:%f,%f|%@&mode=transit®ion=北京&output=html&src=com.91ganlan.haibao",_latitude,_longitude, coor2.latitude,coor2.longitude,placeName];
NSString * urlString = [urlStrstringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *mapUrl = [NSURLURLWithString:urlString];
[[UIApplicationsharedApplication] openURL:mapUrl];
}
}
BMKNaviPara* para = [[BMKNaviPara alloc]init];
//指定导航类型
para.naviType = BMK_NAVI_TYPE_NATIVE;
//初始化终点节点
BMKPlanNode* end = [[BMKPlanNode alloc]init];
//指定终点经纬度
CLLocationCoordinate2D coor2;
coor2.latitude = [[[data objectForKey:@"gps"] objectAtIndex:1] floatValue];
coor2.longitude = [[[data objectForKey:@"gps"] objectAtIndex:0] floatValue];
end.pt = coor2;
//指定终点名称
end.name = placeName;
//指定终点
para.endPoint = end;
//指定返回自定义scheme
para.appScheme = @"baidumapsdk://mapsdk.baidu.com";
//调启百度地图客户端导航
[BMKNavigation openBaiduMapNavigation:para];