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

本文介绍了如何利用百度地图API进行路径规划,包括通过调用App和使用URL访问两种方式。提供了iOS平台上的示例代码,展示了如何实现从当前位置到指定地点的导航功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

百度地图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];


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值