iOS Swift 应用内跳转第三方地图导航路线 及地图坐标系转换

该博客介绍了如何在iOS应用中实现跳转到百度、谷歌、高德、苹果和腾讯地图进行导航,并提供了坐标系转换的解决方案。开发者需要在info.plist中设置白名单,并使用提供的MapType工具进行地图应用的管理和跳转。示例代码和一键调用第三方地图的源码可以在GitHub项目JumpToThirdMap中找到。

支持百度 谷歌 高德 苹果 腾讯地图 一键打开及  地图之间的坐标系的转换 

本项目 Demo 下载地址  https://github.com/sinorychan/JumpToThirdMap    

注意: 百度用的自己的坐标系(在火星坐标系上处理得到)。 谷歌,苹果,高德,腾讯使用的是火星坐标系。在传递经纬度的时候请确定是什么坐标系 然后使用坐标系转换代码 进行坐标转换。

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

                                                      

 首先,如果iOS应用跳转到第三方应用,需要在info.plist中添加白名单,否则无法打开第三方应用

<key>LSApplicationQueriesSchemes</key>

<array>

<string>comgooglemaps</string>

<string>iosamap</string>

<string>qqmap</string>

<string>baidumap</string>

</array>

上代码。  MapType 用来管理所有第三方地图的 名称 url 等 以及是否能打开对应的地图 

//
//  MapType.swift
//  WisdomGuide
//
//  Created by chan on 2019/8/26.
//  Copyright © 2019 BJMHBT. All rights reserved.
//
import UIKit

 enum MapType {
    
    //百度
    case baiduMap
    //高德
    case gaodeMap
    //苹果
    case appleMap
    //谷歌
    case googleMap
    //腾讯
    case qqMap
    
    
    var  URI : String {
        switch self {
        case .baiduMap:
            return "baidumap://"
        case .gaodeMap:
            return "iosamap://"
        case .appleMap:
            return "http://maps.apple.com/"
        case .googleMap:
            return "comgooglemaps://"
        case .qqMap:
            return "qqmap://"
        }
    }
    
    /// 地图名称
    var Name : String {
        switch self {
        case .baiduMap:
            return "百度地图"
        case .gaodeMap:
            return "高德地图"
        case .appleMap:
            return "苹果地图"
        case .googleMap:
            return "谷歌地图"
        case .qqMap:
            return "腾讯地图"
        }
    }
    
    /// 本地是否安装地图软件
    var canOpen : Bool {
        guard let url = URL(string:URI),
            UIApplication.shared.canOpenURL(url) else {
                return false
        }
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值