最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

android百度地圖之公交線路詳情搜索

 更新時間:2016年10月26日 14:25:07   作者:若。只如初見  
本篇文章介紹了android百度地圖之公交線路詳情搜索,實現(xiàn)了百度搜索公交詳情具有一定的參考價值,感興趣的小伙伴們可以參考一下。

本篇文章可以實現(xiàn)百度公交線路搜索,可以選擇多條線路,具體實現(xiàn)代碼如下:

一、公交線路詳情檢索

獲取公交線路的詳情主要分來兩步,1.獲取公交線路的Uid,2.通過Uid獲取公交線路詳情。

1.獲取公交線路的Uid:

/*
     * 獲得公交線路圖的Uid,并且根據(jù)系Uid發(fā)起公交線路詳情的檢索
     * 
     * @see
     * com.baidu.mapapi.MKSearchListener#onGetPoiResult(com.baidu.mapapi
     * .MKPoiResult, int, int)
     */
    @Override
    public void onGetPoiResult(MKPoiResult arg0, int arg1, int arg2) {
      // TODO Auto-generated method stub
      if (arg0 == null || arg2 != 0) {
        Toast.makeText(MainActivity.this, "未找到結(jié)果", 1);
        return;
      }
      // 定義一個公交線路描述類
      MKPoiInfo mkPoiInfo = null;
      // 獲得本次就愛你所的公交線路的總站點
      int totalPoiNum = arg0.getNumPois();
      for (int i = 0; i < totalPoiNum; i++) {
        mkPoiInfo = arg0.getPoi(i);
        if (mkPoiInfo.ePoiType == 2) {
          break;
        }
      }
      mkSearch.busLineSearch("開封", mkPoiInfo.uid);
    }

2.獲取公交線路詳情:

/*
     * 得到公交線路圖的詳情
     * 
     * @see
     * com.baidu.mapapi.MKSearchListener#onGetBusDetailResult(com.baidu.
     * mapapi.MKBusLineResult, int)
     */
    @Override
    public void onGetBusDetailResult(MKBusLineResult arg0, int arg1) {
      // TODO Auto-generated method stub
      if (arg0 == null || arg1 != 0) {
        Toast.makeText(MainActivity.this, "未找到結(jié)果", 1);
        return;
      }
      RouteOverlay routeOverlay = new RouteOverlay(MainActivity.this,
          mapView);
      routeOverlay.setData(arg0.getBusRoute());// 獲得公交線路

      mapView.getOverlays().clear();// 清楚公交站點的標識
      mapView.getOverlays().add(routeOverlay);
      mapView.invalidate();
      // 采用動畫形式描述公交站點
      mapView.getController().animateTo(arg0.getBusRoute().getStart());
    }

查詢時,只需提供城市名和線路

mkSearch.poiSearchInCity("開封", "3");

完整代碼:

package com.arlen.android.baidumap08;

import android.os.Bundle;
import android.view.Menu;
import android.widget.Toast;

import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.MKAddrInfo;
import com.baidu.mapapi.MKBusLineResult;
import com.baidu.mapapi.MKDrivingRouteResult;
import com.baidu.mapapi.MKGeneralListener;
import com.baidu.mapapi.MKPoiInfo;
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.MapView;
import com.baidu.mapapi.RouteOverlay;

public class MainActivity extends MapActivity {

  private BMapManager bMapManager;
  private MapView mapView;
  private String key = "43D220AAB0DEC976D2EABC83CFC9EEE52BCCCA7A";
  private MKSearch mkSearch;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    bMapManager = new BMapManager(MainActivity.this);
    bMapManager.init(key, new MKGeneralListener() {

      @Override
      public void onGetPermissionState(int arg0) {
        // TODO Auto-generated method stub

      }

      @Override
      public void onGetNetworkState(int arg0) {
        // TODO Auto-generated method stub

      }
    });
    initMapActivity(bMapManager);
    mapView = (MapView) findViewById(R.id.bmapView);
    mkSearch = new MKSearch();
    mkSearch.init(bMapManager, new MySearchListener());

    mkSearch.poiSearchInCity("開封", "3");
  }

  private class MySearchListener implements MKSearchListener {

    @Override
    public void onGetAddrResult(MKAddrInfo arg0, int arg1) {
      // TODO Auto-generated method stub

    }

    /*
     * 得到公交線路圖的詳情
     * 
     * @see
     * com.baidu.mapapi.MKSearchListener#onGetBusDetailResult(com.baidu.
     * mapapi.MKBusLineResult, int)
     */
    @Override
    public void onGetBusDetailResult(MKBusLineResult arg0, int arg1) {
      // TODO Auto-generated method stub
      if (arg0 == null || arg1 != 0) {
        Toast.makeText(MainActivity.this, "未找到結(jié)果", 1);
        return;
      }
      RouteOverlay routeOverlay = new RouteOverlay(MainActivity.this,
          mapView);
      routeOverlay.setData(arg0.getBusRoute());// 獲得公交線路

      mapView.getOverlays().clear();// 清楚公交站點的標識
      mapView.getOverlays().add(routeOverlay);
      mapView.invalidate();
      // 采用動畫形式描述公交站點
      mapView.getController().animateTo(arg0.getBusRoute().getStart());
    }

    @Override
    public void onGetDrivingRouteResult(MKDrivingRouteResult arg0, int arg1) {
      // TODO Auto-generated method stub

    }

    @Override
    public void onGetPoiDetailSearchResult(int arg0, int arg1) {
      // TODO Auto-generated method stub

    }

    /*
     * 獲得公交線路圖的Uid,并且根據(jù)系Uid發(fā)起公交線路詳情的檢索
     * 
     * @see
     * com.baidu.mapapi.MKSearchListener#onGetPoiResult(com.baidu.mapapi
     * .MKPoiResult, int, int)
     */
    @Override
    public void onGetPoiResult(MKPoiResult arg0, int arg1, int arg2) {
      // TODO Auto-generated method stub
      if (arg0 == null || arg2 != 0) {
        Toast.makeText(MainActivity.this, "未找到結(jié)果", 1);
        return;
      }
      // 定義一個公交線路描述類
      MKPoiInfo mkPoiInfo = null;
      // 獲得本次就愛你所的公交線路的總站點
      int totalPoiNum = arg0.getNumPois();
      for (int i = 0; i < totalPoiNum; i++) {
        mkPoiInfo = arg0.getPoi(i);
        if (mkPoiInfo.ePoiType == 2) {
          break;
        }
      }
      mkSearch.busLineSearch("開封", mkPoiInfo.uid);
    }

    @Override
    public void onGetRGCShareUrlResult(String arg0, int arg1) {
      // TODO Auto-generated method stub

    }

    @Override
    public void onGetSuggestionResult(MKSuggestionResult arg0, int arg1) {
      // TODO Auto-generated method stub

    }

    @Override
    public void onGetTransitRouteResult(MKTransitRouteResult arg0, int arg1) {
      // TODO Auto-generated method stub

    }

    @Override
    public void onGetWalkingRouteResult(MKWalkingRouteResult arg0, int arg1) {
      // TODO Auto-generated method stub

    }
  }

  @Override
  protected void onDestroy() {
    // TODO Auto-generated method stub
    super.onDestroy();
    if (bMapManager != null) {
      bMapManager.destroy();
      bMapManager = null;
    }
  }

  @Override
  protected void onResume() {
    // TODO Auto-generated method stub
    super.onResume();
    if (bMapManager != null) {
      bMapManager.start();
    }
  }

  @Override
  protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
    if (bMapManager != null) {
      bMapManager.stop();
    }
  }

  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
  }

  @Override
  protected boolean isRouteDisplayed() {
    // TODO Auto-generated method stub
    return false;
  }

}

二、多條線路顯示

在同一個地圖上顯示多條導航線路,也只需要分兩步完成,

1.定義起始點個終點

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);

2.將所有的線路詳情循環(huán)顯示在地圖上

@Override
    public void onGetTransitRouteResult(MKTransitRouteResult arg0, int arg1) {
      // TODO Auto-generated method stub
      if (arg0 == null) {
        return;
      }
      int planNum = arg0.getNumPlan();// 獲取所有的駕車路線
      for (int i = 0; i < planNum; i++) {
        TransitOverlay overlay = new TransitOverlay(MainActivity.this,
            mapView);
        overlay.setData(arg0.getPlan(i));
        mapView.getOverlays().add(overlay);
      }
      mapView.invalidate();
      mapView.getController().animateTo(arg0.getStart().pt);
    }

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Android ListView中動態(tài)顯示和隱藏Header&Footer的方法

    Android ListView中動態(tài)顯示和隱藏Header&Footer的方法

    這篇文章主要介紹了Android ListView中動態(tài)顯示和隱藏Header&Footer的方法及footer的兩種正確使用方法,本文介紹的非常詳細,具有參考借鑒價值,對listview header footer相關知識感興趣的朋友一起學習吧
    2016-08-08
  • Android之AttributeSet案例詳解

    Android之AttributeSet案例詳解

    這篇文章主要介紹了Android之AttributeSet案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Google 開發(fā)Android MVP架構(gòu)Demo深入解析

    Google 開發(fā)Android MVP架構(gòu)Demo深入解析

    這篇文章主要為大家介紹了Google 開發(fā)Android MVP架構(gòu)Demo深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • Android實現(xiàn)上傳頭像

    Android實現(xiàn)上傳頭像

    這篇文章主要為大家詳細介紹了Android實現(xiàn)上傳頭像,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • Kotlin協(xié)程launch原理詳解

    Kotlin協(xié)程launch原理詳解

    這篇文章主要為大家介紹了Kotlin協(xié)程launch原理的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • 淺析Android 手機衛(wèi)士設備管理權(quán)限鎖屏

    淺析Android 手機衛(wèi)士設備管理權(quán)限鎖屏

    這篇文章主要介紹了淺析Android 手機衛(wèi)士設備管理權(quán)限鎖屏的相關資料,需要的朋友可以參考下
    2016-04-04
  • Android中Notification 提示對話框

    Android中Notification 提示對話框

    Notification,俗稱通知,是一種具有全局效果的通知,它展示在屏幕的頂端,首先會表現(xiàn)為一個圖標的形式,當用戶向下滑動的時候,展示出通知具體的內(nèi)容
    2016-01-01
  • Android數(shù)據(jù)存儲方式操作模式解析

    Android數(shù)據(jù)存儲方式操作模式解析

    這篇文章主要為大家介紹了Android數(shù)據(jù)存儲方式操作模式解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • Android6.0 Launcher2應用解析

    Android6.0 Launcher2應用解析

    這篇文章主要為大家詳細介紹了Android6.0 Launcher2應用,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • UIImage初始化的區(qū)別兩種方法介紹(面試常見)

    UIImage初始化的區(qū)別兩種方法介紹(面試常見)

    本文通過兩種方法給大家介紹UIImage初始化的區(qū)別,在面試過程中經(jīng)常遇到,對uiimage初始化相關知識感興趣的朋友一起了解下吧
    2016-05-05

最新評論

萨迦县| 石嘴山市| 泰宁县| 兴城市| 开平市| 洮南市| 平顶山市| 莱芜市| 秀山| 安阳市| 八宿县| 洛川县| 宜良县| 沐川县| 九寨沟县| 县级市| 时尚| 高台县| 陇川县| 通城县| 华蓥市| 西峡县| 潼南县| 莱州市| 乌拉特前旗| 南平市| 南宫市| 白银市| 手游| 湖南省| 儋州市| 肇东市| 新龙县| 淳化县| 东阿县| 桑植县| 正阳县| 门源| 五河县| 陆河县| 芒康县|