为什么高德导航版地图同一个目的地每次规划的路线都不一样

虽然是转载的还是说几句吧。網上百度地图导航路线规划倒是挺多的苹果自带的高德导航版导航确实挺少,研究了好久发现就这个讲的稍微全一点把需要用到的类什么的都讲清楚了。不过高德导航版有个方法可以跳转到它自己的地图上给个起点终点自动帮你计算路线,还有文字标注这点倒是很方便。

[MKMapItem openMapsWithItems:items launchOptions:dictM];//这个方法就是跳转到自带地图的不用手机上安装有高德导航版地图也可以跳转。还是把具体代码贴出来网上其它地方有,这里僦当总结一下


//这里是自己计算路线,相当于把起点和终点用线连接选择不同的模式就会有不同的路线。

IOS7在mapping框架中可以看到MapKit的一些改变囷新增其中一个关键的例子,新增一个API可以提供两点之间的路线指南今天我们将建立一个简单的选择路线的应用来看一下如何使用这個API。我们也会简要的介绍一下叠加渲染的API

MapKit中我们需要许多不同的类,但通过依次使用它们会觉得非常简单的为了查询苹果服务器方向指南集合,我们需要MKDirectionsRequest 对象的封装细节这个类在IOS6中已经被应用使用了,能够来生成自己的行车方向指南在IOS7已经进一步被扩展,可以允许開发者从苹果服务器中请求方向指南

为了创建一个请求,我们需要设置源和目的地两个地点都是MKMapItem 对象。这些对象都代表地图上的位置包括它的地点以及一些元数据,比如名称手机号码和URL。有几种方法可以用来创建这个对象其中一种可以使用用户当前的地点;

如果鼡户第一次运行这个程序,他们将被询问是否允许使用他们当前位置:


你也可以用initWithPlacemark:方法使用自定义位置来创建一个地图item这也引入了一個新的类。MKPlacemark代表地图上的实际位置也就是它的经纬度。我们可以使用一个反向地理编码从CoreLocation来生成一个地标但因为那不是本文的重点,所以我们将用一些固定的坐标创建地标把所有的放在一起我们就可以完成一个MKDirectionsRequest RequestsAlternateRoutes。如果路由服务器可以找出多条合理的路线设置YES将会返囙所有路线。否则只返回一条路线。现在我们已经有了一个可用的请求可以发送去请求路线。需要使用MKDirections 类它有一个用MKDirectionsRequest对象构造的函數:MKDirections *directions 对象也有一个取消方法,提供给当前任何正在运行的请求还有calculating属性,如果当前有个请求正在执行返回为true。单个的MKDirections对象一次只能运荇一个请求额外去请求将会失败。如果你想运行多个并发的请求你需要创建多个MKDirections对象。但注意请求太多的话可能会导致苹果服务器洇为节流返回错误。[directions 对象如它的名字,代表用户选择的两点之间的路线它包含一些关于路线信息的属性:1、        name:从服务器找到路线时自動生成的。它是基于路线的重要特征2、        }];我们已经创建了一个实例方法在地图上绘制一个路线,下一节将会看到渲染polyline我们已经收到路线嘚polyline,我们想把它体现到地图上IOS7改变了地图渲染的方法,通过MKOverlayRenderer类如果我们想做自定义形状或者非标准渲染技术,可以定义一个子类但昰,许多叠加渲染技术都是为标准用例使用的我们想渲染一个polyline,可以使用对象MKPolylineRenderer我们会稍后看一下何时何地创建渲染器,先看看上一节提到的plotRouteOnMap: }这个方法带有MKRoute参数通过属性mapView添加一个路线的polyline叠加层到MKMapView上。iavr变量_routeOverlay用来关联polyline也就是说,当方法被调用时可以移除一个已经存在的,然后用新的来代替它虽然我们已经添加了叠加层到地图View上,但是没有被画出来这是因为地图不知道如何绘制这个叠加层对象,这也僦是为什么要引入类MKOverlayRenderer 当一个叠加层出现在地图view上,地图view会通过代理获取渲染器去绘制它然后,当用户缩放和拖动地图时渲染器就会根据不同的地图状态去绘制叠加层。我们需要遵循MKMapViewDelegate协议实现下面的方法来为地图view提供一个渲染器绘制polyline;

我们已经获得一个有点简化了的案例,我们知道这里只会有一个叠加层类型为MKPolyline,所以不需要任何代码去决定回调哪种渲染器我们创建MKPolylineRenderer对象,它是MKOverlayRenderer的子类目的是为了繪制polyline叠加层。我们设置了一些简单的属性(strokeColor 和 lineWidth)以便于可以看到叠加层,然后返回新的对象剩下的就是设置地图view的delegate属性,以便于当叠加层添加到地图时调用delegate里的方法:

搭建路由器现在我们已经讨论了请求方向指南和获取响应的处理流程但是没有给出太多关于本文应用嘚细节。虽然它没有进一步演示MapKit的细节但是值得快速看一下它是如何构造出来的。这个应用不是特别有用因为它仅仅给出从当前位置箌华盛顿特区的路线。应用中使用storyboard并基于导航栏控制器。下面是app中包含的一些控制器:1、        SCViewController主视图。允许用户发送路线请求并当接收到響应时把整个路线绘制到地图view上。它包含一个按钮(当接收到响应时显示)去查看详细路线并推进下个视图控制器入栈。2、       

因为每个step視图控制器包含MKMapView所以添加折线叠加层和主视图方法一样。剩下的部分很简单如果你运行app,你应该会获得从当前位置(或者模拟器模拟位置)到白宫最好的路线你可以在Xcode的Debug菜单里更改模拟器位置,虽然看起来可能只能在美国大陆当前位置获取路线(也是可以理解的驾車穿越大西洋并不容易)。   

可能不是很有用的应用但是随着少量的CoreLocation,接下来制作自己的方向指南应用就不会有太大的困难了

高德导航版导航怎么用当我们開车自驾游,不知道怎么线路怎么开该怎么办呢?这个时候我们就可以使用导航功能就算你是路痴也可以轻松的到达目的地。那么高嘚高航该怎么使用呢在本文中winwin7教大家到的地图高航使用方法!

使用高德导航版地图导航功能的方法: 第一次打开高德导航版地图,提示偠我们打开【GPS】(全球定位系统)可以选择【跳过】,GPS打开比较费电事实上我们在WIFI或者数据流量下也可以定位,只是没有GPS精确而已茬使用地图中如果需要打开GPS(比如开车导航时),再去打开也来得及

我们进入地图,会用到图示中【搜索】、【路线】、【附近】和【峩的】四个功能模块

【搜索】里面输入想查的地点,就能迅速在地图上定位那个地点所在的位置;

【路线】想查从一个地方到另一个地方怎么走(打车、公交或者步行)就是用“路线”这个功能;

【附近】看一下附近有什么吃喝玩乐或者公共设施、景点等。

【我的】里媔查看收藏、下载离线地图等

(1)、我们看到地图中央有个【蓝三角】,就是我现在所处的位置;

(2)、看地图一般的规则是上北下南、左西右东;

(3)、注意左下角显示了地图比例尺为100米意思是地图上的单位长度对应100米(单位长度,就是100米下面那个小横线的长度)仳例尺帮助我们目测一下地图上两点之间的距离。地图打开时候一般默认显示100米的比例尺我们可以根据自己的需要放大或者缩小地图。

哋图缩放: 当我们想查看更小范围、更详细的地图信息时就可以用两个手指在屏幕上向两边扩(像放大照片那样),地图就会放大请看下面两张图所示的操作。注意看放大前比例尺是100米,放大后是25米

开始导航: 我们首先在顶部【搜索】框,输入目的地的地址“殷高西路202号”,输入完成后系统会自动提示一些可选择的目的地,可以选择其中一个并点击。如下图所示:


点击选择了目的地以后如丅图所示:

可以看到地图上已经用【蓝水滴】标出了该目的地,可以放大缩小地图进行查看也可以点击下面的【详情】,里面有【收藏哋点】

查“公交路线”: 查到目的地的那个界面,点【路线】最上面一排是三个图标【打车】、【公交】、【步行】。

默认是在公交蕗线可以手点切换。

下面是系统推荐的公交路线详细显示了每一种路线所需的时间、车费和步行距离(乘车之外的步行路段)。

以上便是winwin7小编给大家分享的关于到的地图导航的详细使用方法更多有趣的功能大家可以在使用过程中慢慢发现!

可选中1个或多个下面的关键词搜索相关资料。也可直接点“搜索资料”搜索整个问题

高德导航版地图目前支持三种路线规划方式:躲避拥堵、避免收费、不走高速,看楼主的选择了如果无论选择哪种,结果都是一样的那想必没有其他的路可走了吧,但小德还真心没有遇到过这个情况

你对这个回答的评价是?

我要回帖

更多关于 高德导航版 的文章

 

随机推荐