swift - 使用系统app导航
import UIKit //1.导入框架
import MapKit class ViewController: UIViewController {
lazy var geoCoder : CLGeocoder = {
return CLGeocoder()
}() override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { geoCoder.geocodeAddressString("广州") { (pls, err) in
//广州坐标
guard let gzPL = pls?.first else{
return
} self.geoCoder.geocodeAddressString("上海", completionHandler: { (pls, err) in
//上海坐标
if let shPL = pls?.first{
self.beginNav(startPLCL: gzPL, endPLCL: shPL)
}
})
}
}
} // MARK: - 导航起点和终点
extension ViewController{
func beginNav(startPLCL: CLPlacemark, endPLCL: CLPlacemark) { // 起点
let plMK: MKPlacemark = MKPlacemark(placemark: startPLCL)
let startItem: MKMapItem = MKMapItem(placemark: plMK) // 终点
let endplMK: MKPlacemark = MKPlacemark(placemark: endPLCL)
let endItem: MKMapItem = MKMapItem(placemark: endplMK) // 起点和终点
let mapItems: [MKMapItem] = [startItem, endItem] // 导航设置字典
let dic: [String : Any] = [
// 导航模式
MKLaunchOptionsDirectionsModeKey: MKLaunchOptionsDirectionsModeDriving,
// 地图样式
MKLaunchOptionsMapTypeKey: MKMapType.standard.rawValue,
// 显示交通
MKLaunchOptionsShowsTrafficKey: true
]
MKMapItem.openMaps(with: mapItems, launchOptions: dic)
}
}



swift - 使用系统app导航的更多相关文章
- 利用系统APP实现导航---By张秀清
苹果系统本身自带一个地图APP,但是功能并不是很强大,但是一些简单的导航功能还是能做出来的,下面贴上我的代码 // // ViewController.m // 系统APP导航 // // Creat ...
- 导航 - 利用系统自带的App导航
导航: 可以将需要导航位置丢给系统自带的App进行导航 发送网络请求到公司服务器, 获取导航数据, 自己手动绘制导航 利用三方SDK进行导航(百度) #import "ViewControl ...
- iOS系统中导航栏的转场解决方案与最佳实践
背景 目前,开源社区和业界内已经存在一些 iOS 导航栏转场的解决方案,但对于历史包袱沉重的美团 App 而言,这些解决方案并不完美.有的方案不能满足复杂的页面跳转场景,有的方案迁移成本较大,为此我们 ...
- 用Swift语言做App开发之单元测试
作为一个有质量保障的应用程序,当然少不了单元测试:Swift开发的App也亦如此,此文将以一个简单的实例来介绍Swift中的单元测试. 这里我们使用XCode模版自带的XCTest框架,此框架包含了一 ...
- Slideout.js – 触摸滑出式 Web App 导航菜单
Slideout.js 是为您的移动 Web 应用开发的触摸滑出式的导航菜单.它没有依赖,自由搭配简单的标记,支持原生的滚动,您可以轻松地定制它.它支持不同的 CSS3 转换和过渡.最重要的是,它只是 ...
- iOS系统app崩溃日志手动符号化
iOS系统app崩溃日志手动符号化步骤: 1.在桌面建立一个crash文件夹,将symbolicatecrash工具..crash文件..dSYM文件放到该文件夹中 a.如何查询symbolicate ...
- 21个高质量的Swift开源iOS App
原文:21 Amazing Open Source iOS Apps Written in Swift 对Swift初学者来说,学习开源项目,阅读源码是个不错的方法.在这篇文章中,基于对代码质量和排名 ...
- 报课系统APP
031302307黄丰润 031302343张晓燕 #NABCD模型分析 合理分析需求有助于说服客户,所以我们有如下分析 N(need)--客户需要什么 负责人需要将选课信息和选课表格一起发送给所负责 ...
- ios7隐藏系统底部导航
ios7隐藏系统底部导航 minimal-ui <meta id="viewport" name="viewport" content="wid ...
随机推荐
- 如何使用navicat远程连接服务器上的oracle数据库
- HashSet和LinkedHashSet解析
一.简介 1.Set概念 Set可以理解为集合,非常类似数据概念中的集合,集合三大特征:1.确定性:2.互异性:3.无序性,因此Set实现类也有类似的特征. 2.HashSet HashSet继承自A ...
- Java重写equals方法(重点讲解)
为什么equals()方法要重写? 判断两个对象在逻辑上是否相等,如根据类的成员变量来判断两个类的实例是否相等,而继承Object中的equals方法只能判断两个引用变量是否是同一个对象.这样我们往往 ...
- Think you can pronounce these 10 words correctly? You might be
Think you can pronounce these 10 words correctly? You might be surprised! Share Tweet Share Tagged ...
- C++17尝鲜:variant
variant variant 是 C++17 所提供的变体类型.variant<X, Y, Z> 是可存放 X, Y, Z 这三种类型数据的变体类型. 与C语言中传统的 union 类型 ...
- Linux创建SSH信任关系
Linux服务器创建信任关系可以解决远程执行命令.远程传输文件多次手工输入的麻烦.可以实现环境一键打包备份. 测试环境 SuSE 手工创建 假设服务器A与B间要建立信任关系.用户想从服务器A免密码登录 ...
- MySQL中tinytext、text、mediumtext和longtext详解【转】
一.数字类型 类型 范围 说明 Char(N) [binary] N=1~255 个字元binary :分辨大小写 固定长度 std_name cahr(32) not null VarChar( ...
- LINUX系统一一CentOS6.5之安装JDK
准备工作 1.在/usr/目录下创建java目录 [root@localhost ~]# mkdir/usr/local/java/jdk[root@localhost ~]# cd /usr/loc ...
- Unity AssetBundle
Unity AssetBundle爬坑手记 - 夜阑卧听风吹雨 时间 2014-09-15 16:55:00 博客园精华区原文 http://www.cnblogs.com/ybgame/p/39 ...
- 学习BOS物流项目第九天
1 教学计划 1.业务受理需求分析 a. 业务通知单 b.工单 c.工作单 2.创建业务受理环节的数据表 a.业务通知单 b.工单 c.工作单 3.实现业务受理自动分单 a.在CRM服务端扩展方法根据 ...