您现在的位置: 万盛学电脑网 >> 程序编程 >> 网络编程 >> 安卓开发 >> 正文

Android 路径查询

作者:佚名    责任编辑:admin    更新时间:2022-06-22

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

  }

  }