程序员必知:地图显示的步骤

简介: 程序员必知:地图显示的步骤

1.MapKit: 着重与在手机上显示地图,地图上可以显示路线,覆盖层,大头针

2.如何添加大头针:

#需要自定义,因为用户的大头针位置是无法改变

#自定义注意点:

#要遵守MKAnnotation这个协议

#实现这个协议必须实现的方法

#**可以给协议增加方法,以达到设置这个属性的值

#创建大头针

#设置经纬度(title, subTitle)

#添加到地图上面

3.大头针的理论基础

#操作大头针就是操作大头针数据模型

#添加大头针就是添加大头针的数据模型

#删除大头针就是删除大头针的数据模型

4.大头针是如何显示出来的

#当将一根大头针的数据模型添加到地图上时,会调用对应的代理方法,在内部创建大头针视图并返回,之后显示在地图上

#**系统默认的大头针的视图的类型MKPinAnnotationView

一.代码:01-01(掌握)地图的基本使用(显示类型地图控制显示控制) // POI: point of intreset

七.代码: 07-01(了解)导航-方案3-第三方-百度地图-集成百度地图SDK(百度开发平台模块: iOS地图SDK)

# 1.生成秘钥key: "iA5UyEGFTdQ4iFe6FGdeGryhjPfpUXFm

# 2.配置inf.plist文件: 01."App Transport Security Settings""Allow Arbitrary Loads"

# 02."Privacy - Location When In Use Usage Description"--"地图定位测试"

# 或者"NSLocationAlwaysUsageDescription"--"地图定位测试"

# 03."Bundle display name"--"$(PRODUCT_NAME)"

# 04.添加系统以来库: // CoreLocation.framework

// QuartzCore.framework

// OpenGLES.framework

// SystemConfiguration.framework

// CoreGraphics.framework

// Security.framework

// libsqlite3.0.tbd(xcode7以前为 libsqlite3.0.dylib)、CoreTelephony.framework

// libstdc++.6.0.9.tbd(xcode7以前为libstdc++.6.0.9.dylib)

# 05.单独引入mapapi.bundle资源文件(在"BaiduMapAPIMap.framework"中)

七.代码: 07-01(了解)导航-方案3-第三方-百度地图-集成百度地图SDK

# 1.初始化检索对象,并设置BMKPoiSearch 代理

// 实现代理: 返回POI搜索结果

//func onGetPoiResult( searcher: BMKPoiSearch!, result poiResult: BMKPoiResult!, errorCode: BMKSearchErrorCode) {...}

/// 当检索到结果的时候会来到的方法

//当在设置城市未找到结果,但在其他城市找到结果时,回调建议检索城市列表

# 2. 设置BMKMapView代理

// 实现代理: 长按地图时会回调此接口

//func mapview(_ mapView: BMKMapView!, onLongClick coordinate: CLLocationCoordinate2D) {...}//代码效果参考:http://www.ezhiqi.com/zx/art_3012.html

//发起检索

七.代码: 07-03(了解)导航-方案3-第三方-百度地图-添加大头针

# 1.设置地图显示区域:

//let span = BMKCoordinateSpan(...)

//let region = BMKCoordinateRegion(...)

//mapView.setRegion(region, animated: true)

# 2.获取poi列表: poiResult.poiInfoList as? 【BMKPoiInfo】

# 3.添加大头针:

//let annotaion = BMKPointAnnotation()

//annotaion.coordinate = poiInfoList.pt

//annotaion.title = poiInfoList.name

//annotaion.subtitle = poiInfoList.address

//mapView.addAnnotation(annotaion)

七.代码: 07-04(了解)导航-方案3-第三方-百度地图-集成百度导航SDK(百度开发平台模块: iOS导航SDK)

# 小功能: "双指放大缩小: commamd + option

# 1.导入BaiduNaviSSDK

# 2.设置定位服务,并设置代理:

"lazy var locService : BMKLocationService = {...}()

# 3.遵守并实现位置服务代理

// 1.获取用户位置

// 获取用户一次位置

"locService.stopUserLocationService()

// 2.进行导航

// 节点数组

"var nodesArray = 【BNRoutePlanNode】()

// 3.起点

"let startNode = BNRoutePlanNode()

"nodesArray.append(startNode)

// 4.终点

"let endNode = BNRoutePlanNode()

"nodesArray.append(endNode)

// 5.发起路径规划

"BNCoreServices.routePlanService().startNaviRoutePlan(BNRoutePlanModeRecommend, naviNodes: nodesArray, time: nil, delegete: self, userInfo: nil)

# 4.遵守并实现算路代理

// 算路成功回调

"func routePlanDidFinished( userInfo: 【AnyHashable : Any】!) {...}//代码效果参考:http://www.ezhiqi.com/zx/art_362.html

//路径规划成功,开始导航

"BNCoreServices.uiService().showPage(BNaviUI_NormalNavi, delegate: nil, extParams: nil)

完事皆项目,感兴趣可联系我邮箱~hjjuny@163.com

相关文章
|
分布式计算 关系型数据库 MySQL
DolphinScheduler安装部署
DolphinScheduler安装部署
1562 0
|
6月前
|
边缘计算 人工智能 5G
5G引领家庭网络升级:速度、稳定性与智能化的新时代
5G引领家庭网络升级:速度、稳定性与智能化的新时代
508 69
|
4月前
|
存储 人工智能
如何通过AI技术提升法务团队的工作效率并降低风险?——解析公司法务智能助理的神奇功效
本文AI产品专家三桥君探讨了AI技术在企业法务合同管理中的应用方案。针对中大型企业合同管理中的起草效率低、版本混乱、风险审查难等痛点,提出智能助理解决方案:通过模板化设计、结构化输入提升起草效率;利用LLM技术进行多维度合同审查;结合日历功能和互动提醒优化履约管理。三桥君详细分析了各模块设计要点,展示了AI如何通过自动化、智能化手段帮助法务团队降本增效,实现全流程数字化合同管理。
261 0
|
JavaScript 测试技术 持续交付
使用 GitLab CI/CD 管道自动化部署 Web 应用
【10月更文挑战第2天】使用 GitLab CI/CD 管道自动化部署 Web 应用
561 1
|
8月前
|
存储 API 虚拟化
VMware vSphere Replication 9.0.2.2 发布 - 虚拟机复制和数据保护
VMware vSphere Replication 9.0.2.2 发布 - 虚拟机复制和数据保护
286 2
VMware vSphere Replication 9.0.2.2 发布 - 虚拟机复制和数据保护
|
10月前
|
人工智能 搜索推荐 数据库
实时云渲染技术赋能AIGC,开启3D内容生态黄金时代
在AIGC技术革命的推动下,3D内容生态将迎来巨大变革。实时云渲染与Cloud XR技术将在三维数字资产的上云、交互及传播中扮演关键角色,大幅提升生产效率并降低门槛。作为云基础设施厂商,抓住这一机遇将加速元宇宙的构建与繁荣。AIGC不仅改变3D内容的生成方式,从手工转向自动生成,还将催生更多3D创作工具和基础设施,进一步丰富虚拟世界的构建。未来,通过文本输入即可生成引人注目的3D环境,多模态模型的应用将极大拓展创作的可能性。
|
人工智能 算法 搜索推荐
清华校友用AI破解162个高数定理,智能体LeanAgent攻克困扰陶哲轩难题!
清华校友开发的LeanAgent智能体在数学推理领域取得重大突破,成功证明了162个未被人类证明的高等数学定理,涵盖抽象代数、代数拓扑等领域。LeanAgent采用“持续学习”框架,通过课程学习、动态数据库和渐进式训练,显著提升了数学定理证明的能力,为数学研究和教育提供了新的思路和方法。
370 3
|
运维 Prometheus 监控
持续监控和反馈:优化反馈机制与改进流程
持续监控和反馈:优化反馈机制与改进流程
696 1
|
机器学习/深度学习 人工智能 自然语言处理
人工智能的发展现状如何?
【10月更文挑战第16天】人工智能的发展现状如何?
|
前端开发 JavaScript 开发工具
2024年前端开发十大必备技巧
本文介绍了2024年前端开发的十大必备技巧,涵盖现代JavaScript、CSS Grid/Flexbox布局、主流框架(如React、Vue)、Web性能优化、Git版本控制、调试技巧、Web可访问性、现代构建工具(如Webpack)、PWA及持续学习等方面,帮助开发者保持竞争力并提升Web开发质量。