1. 程式人生 > >高德地圖檢索的簡單封裝

高德地圖檢索的簡單封裝

專案中開發終於開始研究到地圖了,當發現專案中一個頁面定位,檢索,頁面繪製,路徑規劃都用到了,看吧這個activity不用看了,密密麻麻的我是受不了了,趕緊把各個功能抽離一下。

1.根據輸入進行自動poi檢索  (我這也是根據專案需要加入了自己的view和介面卡,各位可以根據自己的實際情況來)

/**
 * Created by HLD on 2016/11/23.
 * Contact E-mail:[email protected] ; QQ:1185291074
 * 高德地圖之根據輸入框自動檢索
 */
public class InPutTipsUtil implements 
Inputtips.InputtipsListener { private Context mContext; private static InPutTipsUtil instance; private Inputtips mInputTips; private InputtipsQuery inputtipsQuery; private LocSearchAdapter mAdapter; private View mList; private InPutTipsUtil(Context context) { mContext
= context; } public static InPutTipsUtil getInstance(Context context, LocSearchAdapter adapter) { if (instance == null) { instance = new InPutTipsUtil(context); } //單例情況,多次進入DestinationActivity傳進來的RecomandAdapter物件會不是同一個 instance.setAdapter(adapter);
return instance; } /** * @param key 搜尋關鍵字 * @param city //第二個引數預設代表全國,也可以為城市區號 */ public void search(String key, String city) { inputtipsQuery = new InputtipsQuery(key, city); inputtipsQuery.setCityLimit(true); mInputTips = new Inputtips(mContext, inputtipsQuery); mInputTips.setInputtipsListener(this); mInputTips.requestInputtipsAsyn();//呼叫 PoiSearch 的 requestInputtipsAsyn() 方法傳送請求 } /** * @param context * @param adapter * @param view 對view進行操作控制 可根據自己的情況更換view * @return */ public static InPutTipsUtil getInstance(Context context, LocSearchAdapter adapter, View view) { if (instance == null) { instance = new InPutTipsUtil(context); } //單例情況,多次進入DestinationActivity傳進來的RecomandAdapter物件會不是同一個 instance.setAdapter(adapter); instance.setListView(view); return instance; } private void setListView(View listView) { mList = listView; } private void setAdapter(LocSearchAdapter adapter) { mAdapter = adapter; } /** * 通過回撥介面 onGetInputtips 解析返回的結果,獲取輸入提示返回的資訊。 * * @param tips * @param resultCode 返回結果成功或者失敗的響應碼。1000為成功,其他為失敗 */ @Override public void onGetInputtips(List<Tip> tips, int resultCode) { if (resultCode == 1000 && tips != null) { List<SearchData> datas = new ArrayList<>(); for (Tip tip : tips) { SearchData item = new SearchData(); item.setPoint(tip.getPoint()); item.setAddress(tip.getAddress()); item.setName(tip.getName()); datas.add(item); } if (mList != null) {//對listview有操作時 if (datas.size() > 0) { mList.setVisibility(View.VISIBLE); mAdapter.setGroup(datas); } else { mList.setVisibility(View.GONE); } } else { mAdapter.setGroup(datas); } } else { //響應失敗處理 if (mList != null) { mList.setVisibility(View.GONE); } } //TODO 可以根據app自身需求對查詢錯誤情況進行相應的提示或者邏輯處理 } }