百度地圖3.2教程(2)公交查詢
阿新 • • 發佈:2017-06-17
track error alt 3.1 內容 說了 ase 放大 gets
-----第二步,通過button的點擊事件我們出發檢索事件------
----------------第三步。通過聯網 百度會返回一些公交數據。到回調接口 --------------------
------------------第四步 觸發onGetBusLineSearchResultListener接口 從接口裏的result裏去取出我們要的數據
java 所有代碼
上一篇地址
百度地圖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的點擊事件處理,進行聯網檢索任務*/ @Override public 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() { @Override public 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; } } } //後面是具體信息 @Override public void onGetPoiDetailResult(PoiDetailResult poiDetailResult) { } }; // --------------------------------POI檢索-----------------------
------------------第四步 觸發onGetBusLineSearchResultListener接口 從接口裏的result裏去取出我們要的數據
//----------------------------bus檢索------------------------------------- OnGetBusLineSearchResultListener onGetBusLineSearchResultListener=new OnGetBusLineSearchResultListener() { @Override public 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() { @Override public 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; @Override protected 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的點擊事件處理,進行聯網檢索任務*/ @Override public 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() { @Override public 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; } } } //後面是具體信息 @Override public void onGetPoiDetailResult(PoiDetailResult poiDetailResult) { } }; // --------------------------------POI檢索----------------------- //----------------------------bus檢索------------------------------------- OnGetBusLineSearchResultListener onGetBusLineSearchResultListener=new OnGetBusLineSearchResultListener() { @Override public 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檢索------------------------------------- /* 釋放資源*/ @Override protected void onDestroy() { super.onDestroy(); poiSearch.destroy(); } }------------------------------------------------------------------end-----------------------------------------------
源代碼裏面其它類 ,你就別看了。由於還在研究 以下那個功能留下來的...........................
點擊下載源代碼
百度地圖3.2教程(2)公交查詢