百度地图调用app进行路径规划

百度地图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&region=北京&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&region=北京&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];


你可能感兴趣的:(百度地图调用app进行路径规划)