美文网首页
iOS一次跳转到第三方地图导航小记

iOS一次跳转到第三方地图导航小记

作者: 帅气的阿斌 | 来源:发表于2017-08-29 14:51 被阅读35次

要点1:添加http 白名单 并判断app是否安装

App Transport Security Settings

      Allow Arbitrary Loads

LSApplicationQueriesSchemes

      Item0 baidumap

      Item1 iosamap

要点2:app调起

if([[UIApplicationsharedApplication]canOpenURL:[NSURLURLWithString:@"baidumap://map/"]]){}

if([[UIApplicationsharedApplication]canOpenURL:[NSURLURLWithString:@"iosamap://"]]){}

NSString*urlString = [[NSStringstringWithFormat:@"baidumap://map/direction?origin=latlng:%f,%f|name:我的位置&destination=latlng:%f,%f|name:终点&mode=driving", startP.x, startP.y, newEndP.x, newEndP.y]stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] ;

NSString*urlString = [[NSStringstringWithFormat:@"iosamap://navi?sourceApplication=%@&backScheme=%@&poiname=%@&poiid=%@&lat=%f&lon=%f&dev=0&style=2",@"chaojimali",@"chaojimali",nil,nil, endP.x, endP.y]stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:urlString]];

要点3:火星坐标和百度坐标转换

//百度转火星坐标

+ (CLLocationCoordinate2D)bdToGGEncrypt:(CLLocationCoordinate2D)coord

{

      doublex = coord.longitude-0.0065, y = coord.latitude-0.006;

      doublez =sqrt(x * x + y * y) -0.00002*sin(y *M_PI);

      doubletheta =atan2(y, x) -0.000003*cos(x *M_PI);

      CLLocationCoordinate2DtransformLocation ;

      transformLocation.longitude= z *cos(theta);

      transformLocation.latitude= z *sin(theta);

      returntransformLocation;

}

//火星坐标转百度坐标

+ (CLLocationCoordinate2D)ggToBDEncrypt:(CLLocationCoordinate2D)coord

{

      doublex = coord.longitude, y = coord.latitude;

      doublez =sqrt(x * x + y * y) +0.00002*sin(y *M_PI);

      doubletheta =atan2(y, x) +0.000003*cos(x *M_PI);

      CLLocationCoordinate2DtransformLocation ;

      transformLocation.longitude= z *cos(theta) +0.0065;

      transformLocation.latitude= z *sin(theta) +0.006;

      returntransformLocation;

}

坑点:因为原始的坐标是腾讯地图,腾讯、谷歌、高德统一用的火星,而百度用的自己的,所以要转换。高德地图里面的dev是否偏移(0:lat和lon是已经加密后的,不需要国测加密;1:需要国测加密),所以如果高德地图导航的终点不准的话,可以换下这个值。

相关文章

  • 地图导航

    URI跳转方式地图导航的代码实践iOS调用第三方地图路线导航IOS实现应用内打开第三方地图app进行导航 高德 i...

  • iOS跳转第三方地图导航

    在iOS开发应用过程中,会遇到跳转第三方应用地图进行导航的场景,例如跳转到高德地图,百度地图.如图所示 首先,如果...

  • 2019-03-26

    iOS 调起第三方地图导航

  • Android Kotlin 跳转第三方地图App进行导航(高德

    跳转第三方地图App进行导航 /** * type * 1 高德地图com.autonavi.minimap *...

  • iOS在应用内跳转第三方导航

    最近做到这个需求要求应用内用户导航时根据手机手机内安装的地图来选择什么地图进行跳转到第三方地图导航功能。这个功能实...

  • iOS 集成高德地图

    参考文档:iOS 跳转方式实现地图导航功能 应用内导航 是指使用地图服务提供的SDK(比如高德,百度等等),直接将...

  • iOS APP之间的相互跳转

    APP跳转应用场景 比如现在普及的第三方登录分享地图导航,都需要跳转到指定的APP; 原理:通过设置跳转到应用B的...

  • iOS一次跳转到第三方地图导航小记

    要点1:添加http 白名单 并判断app是否安装 App Transport Security Settings...

  • 开发问题笔记(十三)

    目录 1.App内打开第三方地图进行导航 1.App内打开第三方地图进行导航 App内打开第三方地图进行导航;举例...

  • IOS地图定位导航

    title : IOS地图定位导航category : UI 地图定位导航 标签(空格分隔): IOS 概述 I...

网友评论

      本文标题:iOS一次跳转到第三方地图导航小记

      本文链接:https://www.haomeiwen.com/subject/livodxtx.html