萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> 安卓開發 >> 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){

  }

  }

copyright © 萬盛學電腦網 all rights reserved