日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

高德地图-搜索服务-POI搜索

發布時間:2025/3/15 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 高德地图-搜索服务-POI搜索 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

高德地圖-搜索服務-POI搜索

?

之前公司項目收貨地址仿餓了么的收貨地址,結果發現自己實現的關鍵字搜索和周邊搜索,搜索到的poi列表跟餓了么的并不完全一樣,后來考慮了下,應該是搜索的范圍、類型之類的設置的不一樣。后來搜索了下,也的確是這樣,,現在記錄下來,留給自己也留給大家。

關鍵字搜索

周邊搜索

區域搜索

高德地圖 Android SDK 提供了千萬級別的POI(Point Of Interesting,興趣點)的搜索。

目前支持關鍵字搜索、周邊搜索、指定區域搜索的同步、異步方法。搜索返回 POI 的基本信息,如POI ID,POI 名稱、類型、經緯度、地址等。

關鍵字搜索

通過 PoiSearch.Query(String query, String ctgr, String city) 設置搜索條件。參數“query”為搜索的關鍵字,“ctgr”為搜索類型(類型參照表從相關下載處獲取)、“city”為搜索城市,是必填參數,關鍵字和類型至少輸入一個。

設置搜索條件,發送請求

?

query = new PoiSearch.Query(keyWord, "", cityCode);// keyWord表示搜索字符串,//第二個參數表示POI搜索類型,二者選填其一,//POI搜索類型共分為以下20種:汽車服務|汽車銷售|//汽車維修|摩托車服務|餐飲服務|購物服務|生活服務|體育休閑服務|醫療保健服務|//住宿服務|風景名勝|商務住宅|政府機構及社會團體|科教文化服務|交通設施服務|//金融保險服務|公司企業|道路附屬設施|地名地址信息|公共設施//cityCode表示POI搜索區域的編碼,是必須設置參數 query.setPageSize(10);// 設置每頁最多返回多少條poiitem query.setPageNum(currentPage);//設置查詢頁碼 PoiSearch poiSearch = new PoiSearch(this, query);//初始化poiSearch對象 poiSearch.setOnPoiSearchListener(this);//設置回調數據的監聽器 poiSearch.searchPOIAsyn();//開始搜索

?

通過回調接口接受并解析返回的結果。

public void onPoiSearched(PoiResult result, int rCode) { //可以在回調中解析result,獲取POI信息 //result.getPois()可以獲取到PoiItem列表,Poi詳細信息可參考PoiItem類 //若當前城市查詢不到所需Poi信息,可以通過result.getSearchSuggestionCitys()獲取當前Poi搜索的建議城市 //如果搜索關鍵字明顯為誤輸入,則可通過result.getSearchSuggestionKeywords()方法得到搜索關鍵詞建議 //返回結果成功或者失敗的響應碼。0為成功,其他為失敗(詳細信息參見網站開發指南-錯誤碼對照表) }

顯示效果如圖所示:

?

周邊搜索

使用 PoiSearch.searchPOIAsyn() 搜索 POI。使用 PoiSearch.setOnPoiSearchListener() 方法設置監聽器,在 PoiSearch.OnPoiSearchListener 接口回調方法 onPoiSearched(PoiResult poiResult,int rCode)中處理返回結果。當指定搜索城市時,若沒有返回 POI 結果,則會返回包含關鍵字的建議城市名稱。當關鍵字搜索無結果時,則會返回搜索建議關鍵字。

設置搜索條件,發送請求

query = new PoiSearch.Query(keyWord, "汽車維修|餐飲服務", cityCode); // keyWord表示搜索字符串,第二個參數表示POI搜索類型,默認為:生活服務、餐飲服務、商務住宅 //共分為以下20種:汽車服務|汽車銷售| //汽車維修|摩托車服務|餐飲服務|購物服務|生活服務|體育休閑服務|醫療保健服務| //住宿服務|風景名勝|商務住宅|政府機構及社會團體|科教文化服務|交通設施服務| //金融保險服務|公司企業|道路附屬設施|地名地址信息|公共設施 //cityCode表示POI搜索區域,(這里可以傳空字符串,空字符串代表全國在全國范圍內進行搜索) query.setPageSize(10);// 設置每頁最多返回多少條poiitem query.setPageNum(currentPage);//設置查第一頁 PoiSearch poiSearch = new PoiSearch(this,query); poiSearch.setBound(new SearchBound(new LatLonPoint(locationMarker.getPosition().latitude,locationMarker.getPosition().longitude), 1000));//設置周邊搜索的中心點以及區域 poiSearch.setOnPoiSearchListener(this);//設置數據返回的監聽器 poiSearch.searchPoiAsyn();//開始搜索

?

通過回調接口獲取數據

public void onPoiSearched(PoiResult result, int rCode) { //在回調函數中解析result獲取POI信息 //result.getPois()可以獲取到PoiItem列表,Poi詳細信息可參考PoiItem類 //若當前城市查詢不到所需Poi信息,可以通過result.getSearchSuggestionCitys()獲取當前Poi搜索的建議城市 //如果搜索關鍵字明顯為誤輸入,則可通過result.getSearchSuggestionKeywords()方法得到搜索關鍵詞建議 //返回結果成功或者失敗的響應碼。0為成功,其他為失敗(詳細信息參見網站開發指南-錯誤碼對照表) }

?

顯示效果如圖所示:

?

?

區域搜索

在周邊搜索的基礎上,增加了矩形限定區域。根據搜索矩形區域左下角和右上角的頂點坐標,使用 PoiSearch.SearchBound(LatLonPoint lowerLeft, LatLonPoint upperRight) 設置搜索范圍。

?

輸入提示搜索

在輸入關鍵字(至少兩個字符)時,可以使用Inputtips類的 Inputtips.InputtipsListener 接口監聽輸入信息,并使用 requestInputtips(String keyword, String city) 發送提示請求。

注:提示中會出現相同的關鍵字,但是這些關鍵字所在區域不同,使用時可以通過 tipList.get(i).getDistrict() 獲得區域,也可以在提示時在關鍵字后加上區域。

例如用戶輸入“高德”,輸入框下方的列表會顯示包含關鍵字字段的輸入提示信息。

顯示效果如圖所示:

示例代碼如下:

// 發送輸入提示請求 // newText表示提示關鍵字,第二個參數默認代表全國,也可以為城市區號 inputTips.requestInputtips(newText, "");

?

通過回調接口獲取數據

public void onGetInputtips(List<Tip> inputTips, int rcode){ //在回調函數中解析inputTips,獲取輸入提示返回的信息 //Tip類中包含Poi的Adcode、District、Name信息 //返回結果成功或者失敗的響應碼。0為成功,其他為失敗(詳細信息參見網站開發指南-錯誤碼對照表) }

?

?

行政區劃搜索

根據縣(區)級行政區劃名稱查詢其下級區劃的詳細信息,如:中心點坐標、編碼等等。

?

DistrictSearch search = new DistrictSearch(mContext); DistrictSearchQuery query = new DistrictSearchQuery(); query.setKeywords("keywords");//傳入關鍵字 query.setKeywordsLevel(DistrictSearchQuery.KEYWORDS_CITY); query.setShowBoundary(true);//是否返回邊界值 search.setQuery(query); search.setOnDistrictSearchListener(this);//綁定監聽器 search.searchDistrictAnsy();//開始搜索

?

通過回調接口獲取數據

public void onDistrictSearched(DistrictResult districtResult) { //在回調函數中解析districtResult獲取行政區劃信息 //在districtResult.getAMapException().getErrorCode()=0時調用districtResult.getDistrict()方法 //獲取查詢行政區的結果,詳細信息可以參考DistrictItem類。 }

?顯示效果如圖所示:

?

?

轉載于:https://www.cnblogs.com/dingzq/p/5581365.html

總結

以上是生活随笔為你收集整理的高德地图-搜索服务-POI搜索的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。