路径规划 API
- 格式:doc
- 大小:99.00 KB
- 文档页数:8
智能导航系统的路径规划算法与实现教程导航系统是现代生活中常用的工具之一,用于帮助人们找到目的地并提供最佳的行驶路线。
而智能导航系统通过结合人工智能技术,能够更加精准地规划出最佳路径,提供更好的导航体验。
本文将介绍智能导航系统中常用的路径规划算法及其实现教程。
一、最短路径算法最短路径算法是路径规划中最常用的算法之一,它通过计算两点之间的路程或路径权重,并选取最小值作为最优路径,以确保行驶距离最短。
最短路径算法有很多种实现方式,其中比较著名的有Dijkstra算法和A*算法。
1. Dijkstra算法:Dijkstra算法是一种广度优先搜索算法,它通过不断扩展搜索范围,逐步更新各个节点的最短路径,直到找到目标节点为止。
其基本步骤如下:- 初始化节点集合和距离数组,并设置起始节点的距离为0;- 选取距离最小的节点作为当前节点;- 更新与当前节点相邻的节点的距离,如果通过当前节点到达某个节点的路径更短,则更新该节点的距离;- 标记当前节点为已访问,并继续查找下一个距离最小的节点;- 重复上述步骤,直到找到目标节点或所有节点都被访问。
2. A*算法:A*算法是一种启发式搜索算法,它综合考虑了节点的实际距离和启发式函数(如估计距离),以选择最优路径。
其基本步骤如下: - 初始化节点集合和距离数组,并设置起始节点的估计距离为0;- 选取估计距离最小的节点作为当前节点;- 更新与当前节点相邻的节点的估计距离和实际距离之和,并计算启发式函数的值;- 标记当前节点为已访问,并继续查找下一个估计距离最小的节点;- 重复上述步骤,直到找到目标节点或所有节点都被访问。
二、实现教程在实际的智能导航系统中,最重要的是如何将路径规划算法应用到实际场景中。
以下是一些实现教程,帮助您理解并应用智能导航系统的路径规划算法:1. 数据准备:首先,您需要准备地图数据,包括道路网络和相关节点的坐标信息。
这些数据可以通过公开的地图API或购买专业地图数据来获取。
百度lbs教程百度LBS(百度地图开放平台)是一个地理位置服务平台,提供了多种地图及地理位置相关的功能和服务,是开发者在自己的应用中集成地理位置信息的首选平台。
本文将为您详细介绍百度LBS的使用方法和相关教程。
百度LBS提供了多个API接口,包括地理编码、逆地理编码、路线规划、距离计算、地点检索等。
这些接口可以帮助开发者实现各种功能,比如地图显示、位置搜索、路径规划等。
在使用这些接口之前,需要开发者先申请百度LBS开发者密钥,并在应用中进行设置。
首先,我们来介绍一下地理编码和逆地理编码这两个API接口。
地理编码可以将地址转换为经纬度坐标,而逆地理编码则可以将经纬度坐标转换为地址。
开发者可以通过地理编码将用户输入的地址转换为具体的坐标,在地图上进行显示;而通过逆地理编码,可以将用户点击地图上的某一点的坐标转换为具体的地址信息。
接下来是路线规划和距离计算这两个API接口。
路线规划可以根据用户设定的起点和终点,计算出一条最佳路径,并显示在地图上。
开发者可以通过路线规划来为用户提供导航功能。
而距离计算则可以根据用户设定的起点和终点,计算出两点之间的距离,帮助用户了解两地之间的距离情况。
最后是地点检索这个API接口。
地点检索可以帮助用户在地图上搜索特定的地点信息。
用户可以通过关键字搜索、按照分类选择等方式来获取所需的地点数据。
开发者可以将地点检索功能集成到自己的应用中,提供给用户更便捷的地点搜索体验。
百度LBS提供了完善的开发文档和示例代码,开发者可以根据自己的需求进行开发。
在使用百度LBS之前,开发者需要先了解基本的HTML、JavaScript等web开发知识,并熟悉百度LBS相关的API接口和参数。
百度LBS还提供了多个SDK 供不同平台的开发者使用,包括Android、iOS、Web等,开发者可以根据自己的开发环境选择合适的SDK进行开发。
在实际开发过程中,开发者可以根据自己的需求进行代码的编写和调试。
路径规划算法路径规划算法是指在给定的地图上,找到从起点到终点的最优路径的一种方法。
现实生活中,路径规划算法被广泛应用于导航系统、物流管理、机器人导航等领域。
最常用的路径规划算法是A*算法。
A*算法是一种启发式搜索算法,通过估计起点到终点的最短距离来选择下一个搜索节点。
具体步骤如下:1. 初始化起点,将其作为待搜索的节点。
2. 选择以启发式函数估计距离最小的节点作为当前搜索节点。
3. 如果当前节点是终点,则搜索结束,找到了最优路径。
4. 否则,计算当前节点的邻居节点,计算它们到起点的距离,并估计到终点的距离,更新节点状态。
5. 对于每个邻居节点,计算它们的启发式函数估计值,选择其中最小的节点作为下一个搜索节点,返回步骤2。
A*算法的优点是可以找到最优路径,并且可以通过调整启发式函数来适应不同的问题。
然而,它的缺点是需要遍历大量的节点,时间复杂度较高。
另一个常用的路径规划算法是Dijkstra算法。
Dijkstra算法是一种单源最短路径算法,通过维护起点到每个节点的距离来选择下一个搜索节点。
具体步骤如下:1. 初始化起点,将其距离设置为0,并将其加入待搜索节点集合。
2. 选择待搜索节点集合中距离最小的节点作为当前节点。
3. 如果当前节点是终点,则搜索结束,找到了最优路径。
4. 否则,计算当前节点的邻居节点,计算它们到起点的距离,更新节点状态。
5. 对于每个邻居节点,如果它不在待搜索节点集合中,则将其加入待搜索节点集合,返回步骤2。
Dijkstra算法的优点是简单易实现,并且能够找到最短路径。
缺点是时间复杂度较高,需要遍历大量节点。
除了A*算法和Dijkstra算法,还有其他一些常用的路径规划算法,如Bellman-Ford算法、Floyd-Warshall算法等。
不同的算法适用于不同的问题场景,选择合适的路径规划算法可以提高路径规划的效率和准确性。
amap提取折线点的坐标点AMap提取折线点的坐标点随着互联网技术的不断发展,地图应用逐渐成为人们生活中必不可少的一部分,高精度的地图坐标点也变得愈加重要。
而在地图应用的开发过程中,如何提取折线点的坐标点则成为了一项非常重要的技术。
AMap(高德地图)作为国内知名的地图应用,开发了多款强大的地图API,其中提取折线点的坐标点的API也非常实用。
下面,我们从几个不同的方面,分别介绍AMap提取折线点的坐标点技术。
一、数据格式AMap的折线点坐标点格式是经纬度坐标点的集合,常用的格式为JSON。
对于开发者而言,需要注意的是,AMap的每个折线点坐标点都有严格的规范,如经纬度坐标点必须是实数或者字符串类型,经度在前,纬度在后。
二、API接口AMap提取折线点的坐标点是通过API接口调用实现的,主要有两个API接口,分别是搜索API和路径规划API。
1. 搜索API搜索API主要用于搜索某个关键词下的地理位置信息,例如城市、商店、酒店等。
通过搜索API,可以获取到地图上某个区域内的所有POI (Point of Interest)信息,进而提取折线点的坐标点。
2. 路径规划API路径规划API主要用于规划两个地点之间的路径。
通过路径规划API,可以获取某条路径上的所有折线点的坐标点信息。
三、路径抽稀技术在提取折线点的坐标点过程中,需要注意的是,如果直接提取每个折线点,会造成坐标点过于密集,从而影响地图应用的效率和精度。
因此,需要采用路径抽稀技术,将折线点进行稀疏处理。
路径抽稀技术的实现方式有很多,常见的有Douglas-Peucker算法和Visvalingam算法。
这些算法都可以将折线点进行压缩,提高地图应用的效率和精度。
四、应用场景在实际的开发中,AMap提取折线点的坐标点技术可以应用于多个场景。
例如:1. 地图路线规划通过提取折线点的坐标点信息,可以实现多条路线规划,进而为用户提供更加丰富的出行选择。
【高德地图API】从零开始学高德JS API(五)路线规划先来看两个问题:路线规划与导航有什么区别?步行导航与驾车导航有什么区别?回答:1、路线规划,指的是为用户提供3条路线推荐。
【高德】在提供路线规划的时候,会提供用户自定义路线规划功能,这是别家没有做到的。
导航,指的是为驾车用户提示路口信息,向左向右,进入匝道等信息。
2、我们这里说的步行导航和驾车导航,严格的说,应该是路线规划。
从A地到B地,如果是驾车,路线规划会将公路路网做为搜索数据;如果是步行,过街天桥、地下通道、人行道做为搜索数据。
-------------------------------------------------------------------------------------------------------一、路线规划——驾车1、驾车路线规划有三种策略,分别是最短时间、最少费用、最短路径、规避拥堵(参考了实时交通数据,这个比较NB)。
LEAST_TIME,LEAST_FEE,LEAST_DISTANCE,REAL_TRAFFIC我们在这里采取驾车插件来做。
代码://驾车导航function driving_route() {clearMap();mapObj.plugin(["AMap.Driving"], function() {var DrivingOption = {policy: AMap.DrivingPolicy.LEAST_TIME };MDrive = new AMap.Driving(DrivingOption); //构造驾车导航类AMap.event.addListener(MDrive, "complete", driving_routeCallBack); //返回导航查询结果MDrive.search(start_xy, end_xy); //根据起终点坐标规划驾车路线});}示意图:2、驾车最后一公里步行在最开始一段,和最后一段步行距离的时候,可以用虚线来表示。
百度地图JSAPI使⽤定位当前地址与路径规划api实例地址样式 div1. <style>2. #allmap {width: 100%;height: 80%;overflow: hidden;margin:0;font-family:"微软雅⿊";}3. body{4. font-size: 12px;5. }6. </style>js1. <script type="text/javascript">2. // 百度地图API功能3. var map = new BMap.Map("allmap"); // 创建Map实例4. map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); // 初始化地图,设置中⼼点坐标和地图级别5. map.addControl(new BMap.NavigationControl());6. map.addControl(new BMap.ScaleControl());7. map.addControl(new BMap.OverviewMapControl());8. map.addControl(new BMap.MapTypeControl());9. map.setZoom(15);10. map.setCurrentCity("北京"); // 设置地图显⽰的城市此项是必须设置的11. map.enableScrollWheelZoom(true); //开启⿏标滚轮缩放12.13. var localp;14. var end = "<%=URLDecoder.decode(request.getParameter("haddr"),"utf-8")%>";15.16. var geolocation = new BMap.Geolocation();17. geolocation.getCurrentPosition(function(r){18. if(this.getStatus() == BMAP_STATUS_SUCCESS){19. var mk = new BMap.Marker(r.point);20. map.addOverlay(mk);21. map.panTo(r.point);22. localp = r.point;23. map.clearOverlays();24. search(localp,end,routePolicy[0]);25. }26. else {27. alert('定位失败!请确认您的浏览器开启了定位功能');28. }29. },{enableHighAccuracy: true})30.31. var routePolicy = [BMAP_DRIVING_POLICY_LEAST_TIME,BMAP_DRIVING_POLICY_LEAST_DISTANCE,BMAP_DRIVING_POLICY_AVOID_HIGHWAYS];32.33.34.35. function search(start,end,route){36. var driving = new BMap.DrivingRoute(map, {renderOptions:{map: map, autoViewport: true},policy: route});37. driving.search(start,end);38. }39.40. </script>。
如何实现腾讯地图的路径规划功能?前⾔开发者在⾯对配送⾏业场景,诸如外卖,B2C零售,商超等需要路线规划的功能,尤其⽹约车⾏业,还需要⽤到计算路费、动画模拟⼩车在路线上⾏驶等功能,这个腾讯位置服务产品的⼩demo就可以实现定位、规划路线、计算距离和路费,以及模拟⼩车平滑移动等基础功能。
先看下实现效果:新建个Android项⽬并新建个Activity,命名为DrivingRouteActivity,先来画⼀下UI布局,布局⽐较简单,由⼀个腾讯SDK包下的地图组件MapView,以及两个⽤于输⼊起始位置的输⼊框,两个确认路线规划的Button,⼀个定位当前位置的ImageView,⼀个⽤于显⽰⾏程信息的TextView组成,布局代码只是为了⽅便展⽰实现功能,所以下⾯直接贴出布局代码:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"xmlns:app="/apk/res-auto"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".activity.DrivingRouteActivity"><com.tencent.tencentmap.mapsdk.maps.MapViewandroid:id="@+id/mapview"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_weight="1"/><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"android:gravity="bottom"android:paddingTop="10dp"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><EditTextandroid:id="@+id/from_et"android:hint="您在哪⼉上车"android:layout_weight="1"android:layout_marginTop="10dp"android:layout_marginBottom="10dp"android:layout_marginLeft="10dp"android:layout_width="match_parent"android:layout_height="50dp"></EditText><ImageButtonandroid:id="@+id/location_ib"android:background="@drawable/sendtocar_balloon"android:layout_marginTop="10dp"android:layout_marginBottom="10dp"android:layout_marginRight="10dp"android:layout_width="50dp"android:layout_height="50dp"></ImageButton></LinearLayout><EditTextandroid:id="@+id/to_et"android:hint="您要去哪⼉"android:layout_width="match_parent"android:layout_height="50dp"android:layout_marginBottom="5dp"android:layout_marginLeft="10dp"android:layout_marginRight="10dp"></EditText><TextViewandroid:id="@+id/orderdesc_tv"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"android:textSize="20sp"></TextView><Buttonandroid:id="@+id/confirm_btn"android:text="确定"android:layout_width="match_parent"android:layout_height="50dp"android:layout_marginBottom="10dp"android:layout_marginLeft="10dp"android:layout_marginRight="10dp"android:visibility="gone"></Button><Buttonandroid:id="@+id/order_btn"android:text="预约快车"android:layout_width="match_parent"android:layout_height="50dp"android:layout_marginBottom="10dp"android:layout_marginLeft="10dp"android:layout_marginRight="10dp"></Button></LinearLayout></LinearLayout>1.账号注册与配置在开发之前,我们需要到腾讯位置服务官⽹注册⼀个账号注册后进⼊控制台选择key管理,点击创建新秘钥,按照申请信息提交申请将上⾯申请的key在application标签下进⾏如下配置(value替换成⾃⼰的key)<meta-dataandroid:name="TencentMapSDK"android:value="XXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX" />2.引⼊腾讯Android地图进⼊Android地图SDK,下载3D版地图SDK压缩包下载完成后打开压缩包,将libs⽂件夹下的jar包拷贝到app的libs⽬录下,右键该jar包选择add as library添加为依赖,并且在项⽬app\src\main路径下建⽴名为jniLibs的⽬录,把压缩包libs/jniLibs/strip⽂件夹下的所有包放到jniLibs⽬录下引⼊后在AndroidManifest.xml⽂件下配置相关权限<!-- 访问⽹络获取地图服务 --><uses-permission android:name="android.permission.INTERNET" /><!-- 检查⽹络可⽤性 --><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><!-- 访问WiFi状态 --><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><!-- 需要外部存储写权限⽤于保存地图缓存 --><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><!-- 获取 device id 辨别设备 --><uses-permission android:name="android.permission.READ_PHONE_STATE" />3.配置完成,现在开始实现我们的逻辑交互,为了让实现逻辑更加清晰,我将业务逻辑代码与视图渲染代码分到了两个包中,除了activity包中的DrivingRouteActivity之外,新建了⼀个present包,并在包下建⽴⼀个DrivingRoutePresent类,分别由DrivingRouteActivity负责对UI组件进⾏视图渲染,由DrivingRoutePresent类负责业务逻辑。
前端开发技术中常见的地图和位置服务应用方法随着移动互联网时代的来临,地图和位置服务成为了前端开发中常见的应用方法。
不仅可以为用户提供准确的导航和定位功能,还可以通过地理位置信息来为用户提供精准的推荐服务。
本文将介绍几种常见的地图和位置服务应用方法,并分析其在前端开发中的应用。
一、地理定位地理定位是前端开发中最常用到的一种地图和位置服务应用方法。
通过获取用户设备的地理位置信息(如经纬度),可以实现准确的定位功能。
在Web开发中,可以通过浏览器提供的Geolocation API来获取用户的地理位置信息。
利用该API,前端开发者可以轻松获取用户的经纬度,并在地图上标注用户的位置。
地理定位在很多应用场景中都有广泛的应用,如打车软件中的定位功能就是通过获取用户地理位置信息来派发附近的司机。
另外,地理定位还可以结合其他业务需求,实现更复杂的功能。
例如,电商平台可以根据用户的地理位置信息,向其推荐附近的优惠促销活动。
二、地图展示地图展示是前端开发中另一个常见的地图和位置服务应用方法。
通过在前端页面中嵌入地图组件,可以实现地图的展示功能。
在Web开发中,可以使用一些成熟的地图API,如百度地图API、高德地图API等,来实现地图展示功能。
地图展示在很多应用场景中都有广泛的运用。
例如,旅游网站可以通过地图展示来显示景点的分布和路线规划,帮助用户更好地了解旅游目的地。
另外,社交媒体平台也可以利用地图展示功能,让用户在地图上标注自己所在的位置,与好友分享旅行经历或美食推荐。
三、地理编码和逆地理编码地理编码和逆地理编码是前端开发中常用到的地图和位置服务方法。
地理编码指的是将地址信息转换为地理坐标(经纬度)的过程,而逆地理编码则是将地理坐标转换为地址信息的过程。
地理编码和逆地理编码在很多应用场景中都有实际的应用需求。
例如,在电商平台中,用户可以根据输入的地址信息进行地理编码,从而获取该地址的经纬度,实现精确的配送服务。
12<html>3<head>4<meta http-equiv="Content-Type"content="text/html;charset=utf-8"/>5<title>Hello,World</title>6<script type="text/javascript"src="/api?key=46ce9d0614bf7aefe0ba562f8cf87194&v=1.0&services=false"></script> 7</head>8<body>9<div style="width:520px;height:340px;border:1px solid gray"id="container"></div>10</body>11</html>1213view plainprint14<script type="text/javascript">15var map=new BMap.Map("container");//创建地图实例16var point=new BMap.Point(116.404,39.915);//创建点坐标17map.centerAndZoom(point,15);//初始化地图,设置中心点坐标和地图级别18</script>1920<script type="text/javascript"src="/api?key=46ce9d0614bf7aefe0ba562f8cf87194&v=1.0&services=false"></script> 21创建地图容器元素view plainprint22<div style="width:520px;height:340px;border:1px solid#000"id="container"></div>23地图需要一个HTML元素作为容器,这样才能展现到页面上。
百度地图API使⽤(JS案例Web服务器案例)前⾔这⼏天在项⽬中⽤到了百度地图这个插件,所以准备花点时间记录⼀下⼼得,好东西就要分享出来!1. 百度地图使⽤⽅式1.11.2 申请AK我的需求时web端,所有这⾥选择了浏览器端。
⽩名单上线前使⽤*号,线上正式ak请设置合理的IP⽩名单2.主要学习: 定位技术、路径规划和导航2.1 打开2.2 点击开发指南中的2.3⾄此,我们就快速创建了⼀张以天安门为中⼼的地图~注意: ak=必须时⾃⼰申请的3. 常见相关API 可以在这⾥查找这⾥只介绍⼀些常⽤的3.11<!DOCTYPE html>2<html>3<head>4<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />5<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />6<title>Hello, World</title>7<style type="text/css">8html{9height:100%10}11body{12height:100%;13margin:0px;14padding:0px 15}16#container{17height:100%18}19</style>20<script type="text/javascript" src="https:///api?v=3.0&ak=iG0Qt0gY2IMtf99aZe0j7d1cNnXxIhwM"></script>21</head>2223<body>24<div id="container"></div>25<script type="text/javascript">26// 创建地图实例27var map = new BMap.Map("container");28// 创建点坐标29var point = new BMap.Point(116.404, 39.915);30// 初始化地图,设置中⼼点坐标和地图级别31map.centerAndZoom(point, 15);32</script>33</body>34</html>3.2可以给地图中的点添加标注,添加标注的时候要⼀个point(坐标)对象,把标注添加到坐标位置。
路径规划API1.概述:Autonavi路径规划API可以规划自驾,公交及步行三种路径。
一条路径(Route)由多个路段组成。
如自驾路径的可能像这样,从出发点沿路A直行(路段1),在路口左转进入路B( 路段2 ),再向左转进入路C(路段3)。
公交路径也一样,如从出发点走到车站A(路段1),坐X站(路段2), 走100米换乘地铁(路段3),坐Y站下车(路段4),走200米到达目的地(路段5)。
可以看出,3种路径规划,均可抽象为路径加路段的概念。
除了基本的路径规划外,本API还提供了把路径作为Overlay加入到地图的功能。
2.Route.FromAndTo class:2.1 概述:Route.FromAndTo是类Route的内部类。
它定义了路径计算时的起始点。
该类为构造路径时的帮助类。
此类中定义的起点和终点,可能与路径计算结果的起点终点不一样。
原因有二,一是可能要求了坐标偏转,二是对于自驾路径,导航引擎会将远离道路的起点终点移至较近的道路上。
2.2 构造函数public FromAndTo(GeoPoint from, GeoPoint to, int trans)构造函数。
参数from定义了路径的起点,参数to定义了终点,参数trans决定了坐标偏转的设定。
见2.3常量说明。
public FromAndTo(GeoPoint from, GeoPoint to)构造函数。
参数from定义了路径的起点,参数to定义了终点,且起点终点坐标不做偏转。
见2.3常量说明。
2.3 常量定义:public static final int NoTrans;不做偏转。
public static final int TransFromPoint = 1;仅对起点做偏转public static final int TransToPoint = 2;仅对终点做偏转public static final int TransBothPoint = 3;对起点和终点做偏转3.Route class3.1概述:Route类定义了一条路径。
此类不可以直接构造,只能通过类的静态(static)函数得到其实例。
一条路径,可以是公交路径,步行路径,或者自驾路径。
根据构建时的参数,可以得到不同的路径。
3.2成员变量:protected String mStartPlace:路径起始点的描述protected String mTargetPlace:路径目的地的描述protected List<Segment> mSegs:此路径所包含的路段列表,按照起点至终点的次序排列。
3.3常量:static public final int BusDefault ;路径为公交模式。
static public final int BusSaveMoney ;路径为公交模式,但路径计算时尽量选择车票花销小的路线。
static public final int BusLeaseChange ;路径为公交模式,但路径计算时尽量选择换乘次数少的路线。
static public final int BusLeaseWalk ;路径为公交模式,但路径计算时尽量选择步行长度小的路线。
static public final int BusMostComfortable;路径为公交模式,但路径计算时尽量选择最舒适的路线。
static public final int DrivingDefault;路径为自驾模式static public final int DrivingSaveMoney ;路径为自驾模式,但路径计算时尽量选择最省钱的路线–比如尽可能少走收费道路。
static public final int DrivingLeastDistance ;路径为自驾模式,但路径计算时尽量选择行驶距离最短的路线static public final int DrivingNoFastRoad;路径为自驾模式,但路径计算时不考虑走高速路static public final int WalkDefault;路径为步行模式3.4public static boolean isDrive(int mode):如果参数mode为DrivingDefault,DrivingSaveMoney,DrivingLeastDistance,DrivingNoFastRoad之一,则返回true,否则返回false。
(参见3.3)3.5public static boolean isBus(int mode):如果参数mode为BusDefault,BusSaveMoney,BusLeaseChange,BusLeaseWalk,BusMostComfortable之一,则返回true,否则返回false。
(参见3.3)3.6public static boolean isWalk(int mode):如果参数mode等于WalkDefault,则返回true,否则返回false。
(参见3.3)3.7static public List<Route> calculateRoute(Context cnt, String key, FromAndTo fromAndTo,int mode) throws IOException:路径的起始点由参数fromAndTo决定(见下面类FromAndTo的说明),路径模式由参数mode决定(见2.3路径模式的常量定义)。
参数cnt为对应的Context,参数key 为API key。
返回值为可能的路径列表。
如果网络连接有问题则抛出IOException,如果参数设置有问题,则抛出IllegalArgumentException。
3.8static public List<Route> calculateRoute(MapActivity act, FromAndTo fromAndTo, intmode) throws IOException:同3.7,但参数cnt与key变成了类MapActivity的实例。
3.9public int getMode():返回该路径计算时选取的模式,返回值为3.3定义的常量之一。
3.10public String getStartPlace():返回起点的地址描述。
3.11public String getTargetPlace():返回终点的地址描述。
3.12public GeoPoint getStartPos():返回起点坐标3.13public GeoPoint getTargetPos():返回终点坐标3.14public int getStepCount():返回路径中的路段数目。
3.15public Segment getStep(int i):返回第i个路段,路段的索引从0开始计数。
3.16public int getSegmentIndex(Segment seg):参数seg定义了待查找的路段,返回值为该路段在本路径中的索引。
如果未找到此路段,则返回-1。
3.17public String getStepedDescription(int i):返回对第i个路段的描述。
3.18public String getOverview():返回对路径的概况描述。
3.19public GeoPoint getLowerLeftPoint():一个路径是由一组线段组成,getLowerLeftPoint返回这些线段的外包矩形的左下角经纬度坐标。
3.20public GeoPoint getUpperRightPoint():一个路径是由一组线段组成,getUpperRightPoint返回这些线段的外包矩形的右上角经纬度坐标。
4.Segment class:4.1概述:此类定义了一个路段。
路段属于路径的一部分,因此有次序的概念。
4.2成员变量:protected GeoPoint[] mShapes;路段的形状点数组。
protected Route mRoute;此路段所属的路径。
protected int mLength;此路段的长度4.3public Segment getPrev():返回此路段的前一个路段。
如果此路段为首个路段,则返回null。
4.4public Segment getNext():返回此路段的下一个路段。
如果此路段为最后的路段,则返回null。
4.5public GeoPoint getFirstPoint():返回此路段的首个形状点坐标。
4.6public GeoPoint getLastPoint():返回此路段的最后一个形状点坐标。
4.7public GeoPoint getLowerLeftPoint():一个路段是由一组线段组成,getLowerLeftPoint返回这些线段的外包矩形的左下角经纬度坐标。
4.8public GeoPoint getUpperRightPoint():一个路段是由一组线段组成,getUpperRightPoint返回这些线段的外包矩形的右上角经纬度坐标。
5.BusSegment class:5.1概述:此类为Segment的子类,它定义了一个公交路段。
注意,公交路径中所包含的路段中既有BusSegment,BusSegment定义一段公交,也有Segment,它定义了一段步行,比如从某点走到车站。
5.2成员变量:protected String mLine;公交的名称。
protected String mFirstStation;该公交线路的始点站名。
protected String mLastStation;该公交线路的终点站名。
protected GeoPoint[] mPassStopPos;该公交线路的从上车站到下车站的途经站点坐标。
protected String[] mPassStopName;该公交线路的从上车站到下车站的途经站点名称。
5.3protected int getStopNumber():返回从上车站,到下车站的车站数目。
这个数目包含上车站与下车站。
5.4public String getLineName():返回公交线路名称。
5.5public String getFirstStationName():返回线路起始点名称5.6public String getLastStationName():返回线路终点名称Asd5.7public String getOnStationName():返回上车站名称。
5.8public String getOffStationName():返回下车站名称。