IOS 调用第三方地图APP导航
来源:互联网 发布:紫外线杀菌灯 知乎 编辑:程序博客网 时间:2024/04/30 02:48
在开发中调用第三方APP进行路径规划,在此过程中不需要导入所调用地图的SDK,本文中只介绍调用百度地图、高德地图以及苹果自身地图APP。
在本项目中我用的是百度地图编码获取的百度经纬度坐标,而在开发过程中,百度坐标和谷歌所转化的经纬度坐标存在些许的差别。
1.调用百度地图APP
代码如下:
_latitudeStr, _longitudeStr 为起始位置经纬度
_endLatitudeStr, _endLongitudeStr 为终点位置经纬度
mode 为行走方式 rc 为所开发项目的名称
// 调用百度地图APP起点和终点位置按照经纬度传
NSString *urlString = [[NSStringstringWithFormat:@"baidumap://map/direction?origin=%@,%@&destination=%@,%@&mode=driving&rc=cab",_latitudeStr,_longitudeStr,_endLatitudeStr,_endLongitudeStr]stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
//调用百度地图APP起点和终点位置按照地名传(需要精确到街道)
// NSString *urlString = [[NSString stringWithFormat:@"baidumap://map/direction?origin=latlng:朝阳门朝外大街&destination=latlng:天安门&mode=driving&rc=cab"] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] ;
[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:urlString]];
2.调用高德地图APP
代码如下:
//调用高德地图App(参数查看官方文档)
NSString *urlString = [[NSStringstringWithFormat:@"iosamap://path?sourceApplication=cab&sid=BGVIS1&slat=%@&slon=%@&did=BGVIS2&sname=我的位置&dlat=%@&dlon=%@&dev=0&m=0&t=0",_latitudeStr,_longitudeStr,_endLatitudeStr,_endLongitudeStr]stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:urlString]];
3.调用苹果自带地图APP
代码如下:
//获取当前的位置
MKMapItem *currentLocation = [MKMapItemmapItemForCurrentLocation];
//目的地的位置
//由于与百度地图所转化的经纬度坐标存在差异通过 transform_baidu_from_mars方法进行转化(使用转化之后的坐标)
double lat =0.0;
double lng =0.0;
transform_baidu_from_mars([self.endLatitudeStrfloatValue], [self.endLongitudeStrfloatValue], &lat, &lng);
CLLocation * location2 = [[CLLocationalloc]initWithLatitude:latlongitude:lng];
CLLocationCoordinate2D coor2 =location2.coordinate;
MKMapItem *toLocation = [[MKMapItemalloc]initWithPlacemark:[[MKPlacemarkalloc]initWithCoordinate:coor2addressDictionary:nil]];
NSArray *items = [NSArrayarrayWithObjects:currentLocation, toLocation,nil];
NSDictionary *options =@{MKLaunchOptionsDirectionsModeKey:MKLaunchOptionsDirectionsModeDriving,MKLaunchOptionsMapTypeKey: [NSNumbernumberWithInteger:MKMapTypeStandard],MKLaunchOptionsShowsTrafficKey:@YES};
//打开苹果自身地图应用,并呈现特定的item
[MKMapItemopenMapsWithItems:itemslaunchOptions:options];
注意:在判断手机上是否存在所调用的地图APP时,需要在Plist文件中配置东西
//调用高德地图和百度地图APP需要配置Plist文件
// <key>LSApplicationQueriesSchemes</key>
// <array>
// <string>baidumap</string>
// <string>iosamap</string>
// </array>
附:百度地图经纬度坐标转化方法 (该方法属于转载)
//将百度地图坐标转化为火星坐标(可适用于高德地图)
// --- transform_earth_from_mars end ---
// --- transform_mars_vs_bear_paw ---
// 参考来源:http://blog.woodbunny.com/post-68.html
const double x_pi =M_PI *3000.0 /180.0;
void transform_baidu_from_mars(double bd_lat,double bd_lon,double *gg_lat,double *gg_lon)
{
double x = bd_lon -0.0065, y = bd_lat -0.006;
double z =sqrt(x * x + y * y) -0.00002 * sin(y *x_pi);
double theta =atan2(y, x) -0.000003 *cos(x *x_pi);
*gg_lon = z * cos(theta);
*gg_lat = z * sin(theta);
}
- IOS 调用第三方地图APP导航
- Android app调用第三方地图(百度地图,高德地图,谷歌地图)导航
- IOS系列——调用第三方地图导航
- iOS开发—调用第三方地图导航
- Android app调用第三方地图(百度地图,高德地图)导航
- android app调用第三方地图路线规划导航(百度,高德,腾讯)
- app集成地图,跳转第三方地图导航 整理
- IOS实现应用内打开第三方地图app进行导航
- IOS实现应用内打开第三方地图app进行导航
- Android从APP启动第三方地图导航
- swift3.0打开第三方地图APP进行导航
- Android调用第三方百度APP进行导航
- 调用第三方APP
- iOS app 打开第三方接口、拨打电话、打开地图第三方app等
- 封装的导航工具类,两行代码搞定iOS App内部跳转第三方应用(百度、高德、苹果)地图导航
- 打开第三方地图App
- 跳转第三方地图app
- iOS 调用地图导航
- 存取之美 —— HashMap原理、源码、实践
- CSS after before 清除float
- OpenSceneGraph实现的NeHe OpenGL教程 - 第三十二课
- swift下面使用第三方Masonry 的代码
- GDB调试(一)
- IOS 调用第三方地图APP导航
- 地图标注表达式
- 基础第一天
- ubuntu 安装freebasic
- git push错误ERROR: missing Change-Id in commit message footer
- git命令使用
- 键盘事件和鼠标事件【js】
- 链表 堆栈 队列
- OpenSceneGraph实现的NeHe OpenGL教程 - 第三十三课