百度地圖3.2教程(2)公交查詢,3.2教程

來源:互聯網
上載者:User

百度地圖3.2教程(2)公交查詢,3.2教程

上一篇地址

百度地圖3.1教程—檢索功能示範

還記得兩天前 我在找公交介面,很不幸,介面有些查不到,幾年的前的資料,哎 ,算了唄,突然想起來了百度地圖有這個功能,結果去看了API,尼瑪這API 改的我都不認識 源碼在最小面

說好的MK開頭的資料呢 去哪了,只有從新看了,想從網站找點資料看看結果,找不到了,都是以前API,好吧 自己寫一篇 給大家補全吧。 

 

至於Demo配置我就不說了 ,請參考上一篇文章.......


因為只是做研究用的,所以UI做的不是很美觀 只是把資料放到上面去了。 UI如下

這個只是教學教程所以 UI做的比較醜,不過這個代碼你可以複製到你的APP裡做成查詢公交的功能,待完善。。。。。。。。。。。

一個button點擊事件,連網請求資料,返回在Textview和listview顯示


-----------第一步,發起POI檢索,擷取相應線路的UID;------------

先用poi檢索查詢 所有公交資訊返回,這裡是上一節就講過的內容 我就不敘述了。

<pre name="code" class="java">private void initMap() {poiSearch = PoiSearch.newInstance();poiSearch.setOnGetPoiSearchResultListener(onGetPoiSearchResultListener );//當公交資訊出現以後,會出發這個監聽器,這部分會在後面講解mBusLineSearch=BusLineSearch.newInstance();mBusLineSearch.setOnGetBusLineSearchResultListener(onGetBusLineSearchResultListener);}


 -----第二步,通過button的點擊事件我們出發檢索事件------

private void iniview() {button1 = (Button) findViewById(R.id.button1);search_result = (TextView) findViewById(R.id.result);bus_station = (ListView) findViewById(R.id.bus_station);button1.setOnClickListener(this);}


/*Button的點擊事件處理,進行連網檢索任務*/@Overridepublic void onClick(View view) {switch (view.getId()) {case R.id.button1:poiSearch.searchInCity((new PoiCitySearchOption())      .city("深圳")      .keyword("46")      );break;default:break;}}

----------------第三步,通過連網 百度會返回一些公交資料,到回調介面 --------------------           

//--------------------------------POI檢索-----------------------OnGetPoiSearchResultListener onGetPoiSearchResultListener  = new OnGetPoiSearchResultListener() {@Overridepublic void onGetPoiResult(PoiResult result) {  if (result == null || result.error != SearchResult.ERRORNO.NO_ERROR) {          return;      }      //遍曆所有POI,找到類型為公交線路的POI      for (PoiInfo poi : result.getAllPoi()) {          if (poi.type == PoiInfo.POITYPE.BUS_LINE ||poi.type == PoiInfo.POITYPE.SUBWAY_LINE) {              busLineId = poi.uid;            mBusLineSearch.searchBusLine((new BusLineSearchOption()      .city("深圳")      .uid(busLineId)));            break;          }     }       }//後面是詳細資料@Overridepublic void onGetPoiDetailResult(PoiDetailResult poiDetailResult) {}};//--------------------------------POI檢索-----------------------

------------------第四步 觸發onGetBusLineSearchResultListener介面  從介面裡的result裡去取出我們要的資料

//----------------------------bus檢索-------------------------------------OnGetBusLineSearchResultListener onGetBusLineSearchResultListener=new OnGetBusLineSearchResultListener() {@Overridepublic void onGetBusLineResult(BusLineResult result) {Date startTime = result.getStartTime();Date endTime = result.getEndTime();String start = Commutils.dataToString(startTime);String end = Commutils.dataToString(endTime);String busLineName = result.getBusLineName();search_result.setText(start+"--"+end+"\n"+busLineName);List<BusStation> stations = result.getStations();List<String>list=new ArrayList<String>(); for (int i = 0; i < stations.size(); i++) {String title = stations.get(i).getTitle();list.add(title);}ArrayAdapter<String>adapter=new ArrayAdapter<String>(BusLineSearchDemo.this, android.R.layout.simple_list_item_1,list); bus_station.setAdapter(adapter);}};//----------------------------bus檢索-------------------------------------
我就去了  最早時間 和最晚時間 還有 經過的站 其他的你們可以自行 擴充一下


//----------------------------bus檢索-------------------------------------OnGetBusLineSearchResultListener onGetBusLineSearchResultListener=new OnGetBusLineSearchResultListener() {@Overridepublic void onGetBusLineResult(BusLineResult result) {Date startTime = result.getStartTime();Date endTime = result.getEndTime();String start = Commutils.dataToString(startTime);String end = Commutils.dataToString(endTime);String busLineName = result.getBusLineName();search_result.setText(start+"--"+end+"\n"+busLineName);List<BusStation> stations = result.getStations();List<String>list=new ArrayList<String>(); for (int i = 0; i < stations.size(); i++) {String title = stations.get(i).getTitle();list.add(title);}ArrayAdapter<String>adapter=new ArrayAdapter<String>(BusLineSearchDemo.this, android.R.layout.simple_list_item_1,list); bus_station.setAdapter(adapter);}};//----------------------------bus檢索-------------------------------------

java 全部代碼

package com.example.maptest;import java.util.ArrayList;import java.util.Date;import java.util.List;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.Window;import android.view.View.OnClickListener;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget.ListView;import android.widget.TextView;import com.baidu.mapapi.SDKInitializer;import com.baidu.mapapi.search.busline.BusLineResult;import com.baidu.mapapi.search.busline.BusLineResult.BusStation;import com.baidu.mapapi.search.busline.BusLineSearch;import com.baidu.mapapi.search.busline.BusLineSearchOption;import com.baidu.mapapi.search.busline.OnGetBusLineSearchResultListener;import com.baidu.mapapi.search.core.PoiInfo;import com.baidu.mapapi.search.core.SearchResult;import com.baidu.mapapi.search.poi.OnGetPoiSearchResultListener;import com.baidu.mapapi.search.poi.PoiCitySearchOption;import com.baidu.mapapi.search.poi.PoiDetailResult;import com.baidu.mapapi.search.poi.PoiResult;import com.baidu.mapapi.search.poi.PoiSearch;/** * 此demo用來展示如何進行公交線路詳情檢索,並使用RouteOverlay在地圖上繪製 同時展示如何瀏覽路線節點並彈出泡泡 */public class BusLineSearchDemo extends Activity implements OnClickListener {private Button button1;private PoiSearch poiSearch;private BusLineSearch mBusLineSearch;private PoiCitySearchOption poiCitySearchOption;private TextView search_result;private ListView bus_station;private String busLineId;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);// 注意該方法要再setContentView方法之前實現SDKInitializer.initialize(getApplicationContext());setContentView(R.layout.activity_busline);initMap();iniview();}private void initMap() {poiSearch = PoiSearch.newInstance();poiSearch.setOnGetPoiSearchResultListener(onGetPoiSearchResultListener );//當公交資訊出現以後,會出發這個監聽器,這部分會在後面講解mBusLineSearch=BusLineSearch.newInstance();mBusLineSearch.setOnGetBusLineSearchResultListener(onGetBusLineSearchResultListener);}private void iniview() {button1 = (Button) findViewById(R.id.button1);search_result = (TextView) findViewById(R.id.result);bus_station = (ListView) findViewById(R.id.bus_station);button1.setOnClickListener(this);}/*Button的點擊事件處理,進行連網檢索任務*/@Overridepublic void onClick(View view) {switch (view.getId()) {case R.id.button1:poiSearch.searchInCity((new PoiCitySearchOption())      .city("深圳")      .keyword("46")      );break;default:break;}}//--------------------------------POI檢索-----------------------OnGetPoiSearchResultListener onGetPoiSearchResultListener  = new OnGetPoiSearchResultListener() {@Overridepublic void onGetPoiResult(PoiResult result) {  if (result == null || result.error != SearchResult.ERRORNO.NO_ERROR) {          return;      }      //遍曆所有POI,找到類型為公交線路的POI      for (PoiInfo poi : result.getAllPoi()) {          if (poi.type == PoiInfo.POITYPE.BUS_LINE ||poi.type == PoiInfo.POITYPE.SUBWAY_LINE) {              busLineId = poi.uid;            mBusLineSearch.searchBusLine((new BusLineSearchOption()      .city("深圳")      .uid(busLineId)));            break;          }     }       }//後面是詳細資料@Overridepublic void onGetPoiDetailResult(PoiDetailResult poiDetailResult) {}};//--------------------------------POI檢索-----------------------//----------------------------bus檢索-------------------------------------OnGetBusLineSearchResultListener onGetBusLineSearchResultListener=new OnGetBusLineSearchResultListener() {@Overridepublic void onGetBusLineResult(BusLineResult result) {Date startTime = result.getStartTime();Date endTime = result.getEndTime();String start = Commutils.dataToString(startTime);String end = Commutils.dataToString(endTime);String busLineName = result.getBusLineName();search_result.setText(start+"--"+end+"\n"+busLineName);List<BusStation> stations = result.getStations();List<String>list=new ArrayList<String>(); for (int i = 0; i < stations.size(); i++) {String title = stations.get(i).getTitle();list.add(title);}ArrayAdapter<String>adapter=new ArrayAdapter<String>(BusLineSearchDemo.this, android.R.layout.simple_list_item_1,list); bus_station.setAdapter(adapter);}};//----------------------------bus檢索-------------------------------------/* 釋放資源*/@Overrideprotected void onDestroy() {super.onDestroy();poiSearch.destroy();}}
------------------------------------------------------------------end-----------------------------------------------

源碼裡面其他類 ,你就別看了,因為還在研究 下面那個功能留下來的...........................

點擊下載源碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.