百度地图之公交换乘路线搜索(一)

2014-11-24 08:39:11 · 作者: · 浏览: 3
package com.njupt.bmap_helloworld;  
  
import com.baidu.mapapi.BMapManager;  
import com.baidu.mapapi.GeoPoint;  
import com.baidu.mapapi.MKAddrInfo;  
import com.baidu.mapapi.MKBusLineResult;  
import com.baidu.mapapi.MKDrivingRouteResult;  
import com.baidu.mapapi.MKGeneralListener;  
import com.baidu.mapapi.MKPlanNode;  
import com.baidu.mapapi.MKPoiResult;  
import com.baidu.mapapi.MKSearch;  
import com.baidu.mapapi.MKSearchListener;  
import com.baidu.mapapi.MKSuggestionResult;  
import com.baidu.mapapi.MKTransitRouteResult;  
import com.baidu.mapapi.MKWalkingRouteResult;  
import com.baidu.mapapi.MapActivity;  
import com.baidu.mapapi.MapController;  
import com.baidu.mapapi.MapView;  
import com.baidu.mapapi.PoiOverlay;  
import com.baidu.mapapi.TransitOverlay;  
  
import android.os.Bundle;  
import android.app.Activity;  
import android.view.Menu;  
import android.widget.Toast;  
  
public class MainActivity extends MapActivity {  
  
    private MapView mapView;//百度地图的相关控件  
    private BMapManager bMapManager;//加载地图的引擎  
    private String keyString = "04763B1D8C925195965E838C6E59DB767DAE4BA7";//百度地图的key  
    private MapController mapController;//在百度地图上添加一些控件,比如放大或缩小控件  
      
    private MKSearch mkSearch;  
    private MKPlanNode start;  
    private MKPlanNode end;  
      
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
          
        mapView = (MapView) findViewById(R.id.bmapView);  
        bMapManager = new BMapManager(MainActivity.this);  
          
        //必须要加载key  
        bMapManager.init(keyString, new MKGeneralListener() {  
              
            @Override  
            public void onGetPermissionState(int arg0) {  
                if(arg0 == 300){  
                    Toast.makeText(MainActivity.this, "输入的key有误,请核实...", 1).show();  
                }  
            }  
              
            @O
verride public void onGetNetworkState(int arg0) { // TODO Auto-generated method stub } }); initMapActivity(bMapManager); mapView.setBuiltInZoomControls(true);//表示可以设置缩放功能 mkSearch = new MKSearch(); mkSearch.init(bMapManager, new MySearchListener()); /** * 根据中心点、半径与检索词发起周边检索 * 第一个是查询的名称,第二个参数是构建一个GeoPoint点,第三个参数是查询的半径 */ // mkSearch.poiSearchNearBy("清华大学", new GeoPoint((int)(39.915*1E6), (int)(116.404*1E6)), 5000); start = new MKPlanNode(); start.pt = new GeoPoint((int)(39.915*1E6), (int)(116.404*1E6)); end = new MKPlanNode(); end.pt = new GeoPoint(40057031, 116307852); mkSearch.transitSearch("背景", start, end); } public class MySearchListener implements MKSearchListener{ @Override public void onGetAddrResult(MKAddrInfo arg0, int arg1) { // TODO Auto-generated method stub } @Override public void onGetBusDetailResult(MKBusLineResult arg0, int arg1) { // TODO Auto-generated method stub } @Override public void onGetDrivingRouteResult(MKDrivingRouteResult arg0, int arg1) { // TODO Auto-generated method stub } @Override public void onGetPoiResult(MKPoiResult result, int type, int iError) { if(result == null){ return ; } PoiOverlay poiOverlay = new PoiOverlay(MainActivity.this, mapView); poiOverlay.setData(result.getAllPoi());//找到所有符合条件的点 mapView.getOverlays().add(poiOverlay); mapView.invalidate(); } @Override public void onGetSuggestionResult(MKSuggestionResult ar