可以通過RasterMap的getDirection()方法來查詢路徑,和查詢地址類似,路徑查詢的結果也是通過回調函數的方式來通知應用程序的,下面的例子返回南京到北京的路徑。返回結果存放在MapDirection中,MapDirection包含了路徑的詳細信息,包括路徑的每個步驟,長度,時間,方向等。
Java代碼:
packageeoe.demo;
importcom.mapdigit.gis.MapDirection;
importcom.mapdigit.gis.MapPoint;
importcom.mapdigit.gis.geometry.GeoLatLng;
importcom.mapdigit.gis.service.IRoutingListener;
importcom.pstreets.gisengine.R;
importcom.pstreets.gisengine.SharedMapInstance;
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.view.Menu;
importandroid.view.MenuInflater;
importandroid.view.MenuItem;
publicclassMapRoutingextendsActivityimplementsIRoutingListener{
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
publicvoidonStart(){
super.onStart();
GeoLatLngcenter=newGeoLatLng(32.0616667,118.7777778);
SharedMapInstance.map.setCenter(center,15,
com.mapdigit.gis.raster.MapType.MICROSOFTCHINA);
SharedMapInstance.map.setRoutingListener(this);
}
@Override
publicbooleanonCreateOptionsMenu(Menumenu){
MenuInflaterinflater=getMenuInflater();
inflater.inflate(R.menu.maprouting_menu,menu);
returntrue;
}
@Override
publicbooleanonOptionsItemSelected(MenuItemitem){
//Handleitemselection
switch(item.getItemId()){
caseR.id.getdirection:
Stringname1="南京";
Stringname2="北京";
SharedMapInstance.map.getDirections("from:"+name1+"to:"
+name2);
returntrue;
default:
returnsuper.onOptionsItemSelected(item);
}
}
@Override
publicvoiddone(Stringquery,MapDirectionresult){
if(result!=null){
SharedMapInstance.map.setMapDirection(result);
SharedMapInstance.map.resize(result.getBound());
SharedMapInstance.map.zoomOut();
SharedMapInstance.map.zoomOut();
}
}
@Override
publicvoidreadProgress(intbytes,inttotal){
}
}