Android 路徑查詢


Android 路徑查詢

可以通過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){ } }

 

發佈留言