路径规划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():返回下车站名称。