1.下载SDK并导入到项目或用cocopods导入。
SDK下载地址:https://www.gstatic.com/cpdc/5a212b0fa429156f-GoogleMaps-2.0.1.tar.gz 
2.添加依赖库获取谷歌秘钥
  • GoogleMapsBase.framework
  • GoogleMaps.framework
  • GoogleMapsCore.framework
  • GoogleMapsM4B.framework(仅限高级计划客户)
  • Accelerate.framework
  • CoreData.framework
  • CoreGraphics.framework
  • CoreLocation.framework
  • CoreText.framework
  • GLKit.framework
  • ImageIO.framework
  • libc++.tbd
  • libz.tbd
  • OpenGLES.framework
  • QuartzCore.framework
  • SystemConfiguration.framework
  • UIKit.framework
3.向 AppDelegate.m 添加 API 密钥
    [GMSPlacesClient provideAPIKey:GoogleKey];[GMSServices provideAPIKey:GoogleKey];
4.添加地图
if (!_googleMap) {_googleMap = [GMSMapView mapWithFrame:CGRectMake(0, 0, ScreenWidth , ScreenHeight) camera:camera];_googleMap.delegate = self;[_googleMap setMinZoom:2 maxZoom:17];_googleMap.mapType = kGMSTypeNormal;[self.view addSubview:_googleMap];}
5.路线规划
根据谷歌官方提供的接口,获取途经点。然后将每个路径规划的起始点用GMSMutablePath、GMSPolyline连接起来
https://maps.googleapis.com/maps/api/directions/json?origin=&destination= &waypoints=&key=
&origin=起点
&waypoints=途经点
&destination=终点 
&mode=出行方式  driving(默认值)驾车路线、walking  步行路线、bicycling  骑行路线、transit  公共交通线路线。
    [HYBNetworking getWithUrl:googleUrl refreshCache:NO params:nil progress:^(int64_t bytesRead, int64_t totalBytesRead) {NSLog(@"progress: %f, cur: %lld, total: %lld",(bytesRead * 1.0) / totalBytesRead,bytesRead,totalBytesRead);} success:^(id response) {NSLog(@"resultDictionary== %@",response);int status = [response[@"status"] intValue];if (status == 0) {GMSMutablePath *rodepath = [GMSMutablePath path];if (![self ArrIsNull:response[@"routes"]]) {//routes路线方案NSArray *routes = response[@"routes"];NSDictionary *rotDic = routes[0];if (![self ArrIsNull:rotDic[@"legs"]]) {//legs规划详情NSArray *legArr = [NSArray arrayWithArray:rotDic[@"legs"]];for (int i = 0; i < [legArr count] ; i++) {NSDictionary *legDic = legArr[i];if (![self ArrIsNull:legDic[@"steps"]]) {NSArray * steps = legDic[@"steps"];for (int i = 0; i < steps.count; i++) {NSDictionary *dic = steps[i];NSDictionary *start_location = dic[@"start_location"];[rodepath addLatitude:[start_location[@"lat"] floatValue] longitude:[start_location[@"lng"] floatValue]];NSDictionary *end_location = dic[@"end_location"];[rodepath addLatitude:[end_location[@"lat"] floatValue] longitude:[end_location[@"lng"] floatValue]];}}GMSPolyline *polyline = [GMSPolyline polylineWithPath:rodepath];polyline.strokeColor = [UIColor blueColor];polyline.strokeWidth = 5.f;polyline.map = _googleMap;}}}}else{NSLog(@"暂未路径规划");}} fail:^(NSError *error) {}];

自此实现了一个简单的路线规划功能。项目地址:点击打开链接

iOS 谷歌地图及路线规划相关推荐

  1. iOS 地图导航路线规划详解

    虽然是转载的,还是说几句吧.网上百度地图导航路线规划倒是挺多的,苹果自带的高德导航确实挺少,研究了好久发现就这个讲的稍微全一点,把需要用到的类什么的都讲清楚了.不过高德有个方法可以跳转到它自己的地图上 ...

  2. Android百度地图、高德地图、腾讯地图导航路线规划问题

      Android百度地图.高德地图.腾讯地图导航路线规划 在最近的项目中,需求是用户选择某个地址需要进行导航时,弹出百度地图.高德地图和腾讯地图让用户选择.如果该用户手机中已安装对应的地图App,则 ...

  3. 2019-详细Android Studio开发百度地图(4)—百度地图_路线规划的实现

    百度地图_路线规划的实现 前言 从小白一步步开始,很多资源是很久以前的,而且没有操作配套截图和资源分享.现在本踩过了很多坑,现在开发完成后决定重新写一份教程,希望能借此帮助到许多其他有这方面需求的人. ...

  4. Android 高德地图中路线规划绘制界面线路

    Android 高德地图中路线规划绘制界面线路 下面代码是根据很多的经纬度的点,绘制出直线的线路.比较死板 /*** 绘制景区的路线*/private void setRouteInfo(List&l ...

  5. 高德(百度)地图驾车路线规划和清除

    高德地图: 带途径点的路径规划: var markerList=[{lng:116.379028,lat:39.865042},{lng:116.379028,lat:39.885042, },{ln ...

  6. uniapp--腾讯地图驾车路线规划

    腾讯地图驾车路线规划 <template><view class=""><cu-custom bgColor="bg-gradual-blu ...

  7. 百度地图多点路线规划_期待已久的多地点路线规划功

    对于喜欢自驾游的小伙伴们,元旦节假就快要开始啦.大家打算怎么计划自己的旅行呢? 身为一个拖延患者,我通常会拖到出发前的最后一个晚上,花上半小时,在网上搜索当地感兴趣的景点 (POI), 然后在百度地图 ...

  8. 百度地图多点路线规划_自驾游必备,多地点路线规划功能已经出炉了!!!

    对于喜欢自驾游的小伙伴们,元旦节假就快要开始啦.大家打算怎么计划自己的旅行呢? 身为一个拖延患者,我通常会拖到出发前的最后一个晚上,花上半小时,在网上搜索当地感兴趣的景点 (POI), 然后在百度地图 ...

  9. 微信小程序使用腾讯地图进行路线规划,坐标转地址,逆地理编码,计算目的地跟自身定位的距离

    微信小程序使用腾讯地图 1.介绍腾讯地图 官方文档: https://lbs.qq.com/ 这里,我主要运用的是这几个api ,我在运用的过程中主要实现的功能有:地图路线规划.地址转坐标+计算距离. ...

  10. uniapp H5端使用高德地图完成路线规划

    本项目是H5端,APP端地图的使用方法请参考我的另一篇博客uniapp,map地图组件打包原生APP 首先到高德地图API,申请web端key 参考高德H5端教程开始写代码高德地图JS API 1.准 ...

最新文章

  1. 云服务器ECS挖矿木马病毒处理和解决方案
  2. 如何使用多个参数调用Angular.js过滤器?
  3. Android之drawable state各个属性详解
  4. 使用cordova进行App打包
  5. 虚拟机安装rsync服务器配置,虚拟机安装rsync服务器配置
  6. 正态分布函数_从微积分角度证明“正态分布密度函数”
  7. 函数头文件php_PHP 7.4 的 FFI 将支持更好地在 PHP 中使用 C 函数/数据结构
  8. 记录Yii2代码调试中出现的两个问题(截图展示)
  9. AcWing 1056. 股票买卖 III
  10. 一次磁盘满的系统故障
  11. input正则邮箱_javascript写一个校验邮箱的正则表达式
  12. 【React】绑定this的5种方法总结
  13. android核心系列--1,组件生命周期
  14. JS实现动态生成二维码,并在中间插入logo
  15. Excel中的单元格引用
  16. INA226+STC89C52RC读取电流电压功率
  17. 使用NVM安装升级PNPM报错的问题
  18. WINVNC(二)omni_thread
  19. YAML简介(.yml文件后缀)
  20. php(magento),magento在本地php7上安装方法

热门文章

  1. 等什么君计算机音乐,等什么君歌曲大全_等什么君最新歌曲_九酷音乐
  2. 什么是为AI另辟蹊径的“小”数据?
  3. [育强飞]自动刷屏器_育强飞_新浪博客
  4. OpenCV4 视频目标检测 场景文本检测 手写数字识别 案例
  5. “粤省事”春运专区上线 31项服务让回家更便捷
  6. window10 时间同步出错 超时
  7. office转换为还原度高的html,使用Aspose把office文件转换为Html文件及生成文件浏览乱码的解决...
  8. 神经网络计算棒怎么用,英特尔神经计算棒拆解
  9. Python爬取新笔趣阁小说
  10. C# QQ连连看外挂(内存版)源代码