百度地圖總結(jié)第二篇--POI檢索功能

簡(jiǎn)介:

  • 目前百度地圖SDK所集成的檢索服務(wù)包括:POI檢索、公交信息查詢、線路規(guī)劃、地理編碼、行政區(qū)邊界數(shù)據(jù)檢索、在線建議查詢、短串分享(包括POI搜索結(jié)果分享、駕車/公交/騎行/步行路線規(guī)劃分享、反向地理編碼結(jié)果分享)。
  • POI(Point of Interest),中文可以翻譯為“興趣點(diǎn)”。在地理信息系統(tǒng)中,一個(gè)POI可以是一棟房子、一個(gè)商鋪、一個(gè)郵筒、一個(gè)公交站等。
  • 如果還沒有集成百度地圖,可以看下百度地圖總結(jié)第一篇環(huán)境集成和Hello BaiduMap
    我們來看下怎么使用吧:
    第一步,創(chuàng)建POI檢索實(shí)例
mPoiSearch = PoiSearch.newInstance();

第二步,創(chuàng)建POI檢索監(jiān)聽者;

 OnGetPoiSearchResultListener poiListener = new OnGetPoiSearchResultListener(){
            public void onGetPoiResult(PoiResult result){
                //獲取POI檢索結(jié)果
                List<PoiInfo> allAddr = result.getAllPoi();
                for (PoiInfo p: allAddr) {
                    Log.d("MainActivity", "p.name--->" + p.name +"p.phoneNum" + p.phoneNum +" -->p.address:" + p.address + "p.location" + p.location);
                }
            }
            public void onGetPoiDetailResult(PoiDetailResult result){
                //獲取Place詳情頁檢索結(jié)果
            }
        };

第三步,設(shè)置POI檢索監(jiān)聽者;

 mPoiSearch.setOnGetPoiSearchResultListener(poiListener);

第四步,發(fā)起檢索請(qǐng)求;

mPoiSearch.searchInCity((new PoiCitySearchOption())
                .city("北京")
                .keyword("ktv")
                .pageNum(10));

第五步,釋放POI檢索實(shí)例;

mPoiSearch.destroy()

這個(gè)時(shí)候我們看看輸出的結(jié)果吧。(詳細(xì)的還請(qǐng)看官方文檔介紹,挺詳細(xì)的)



我們?cè)趤砜聪鹿恍畔z索:
第一步,創(chuàng)建POI檢索實(shí)例:

  mPoiSearch = PoiSearch.newInstance();

第二步,創(chuàng)建BusLineSearch實(shí)例:

mBusLineSearch = BusLineSearch.newInstance();

第三步,實(shí)現(xiàn)這兩個(gè)接口:

 mBusLineSearch.setOnGetBusLineSearchResultListener(this);
        
 mPoiSearch.setOnGetPoiSearchResultListener(this);

第四步,處理實(shí)現(xiàn)的方法中的邏輯:

 @Override
    public void onGetBusLineResult(BusLineResult result) {
        if (result == null || result.error != SearchResult.ERRORNO.NO_ERROR) {
            Toast.makeText(this, "抱歉,未找到結(jié)果",
                    Toast.LENGTH_LONG).show();
            return;
        }
        Toast.makeText(this, result.getBusLineName(),
                Toast.LENGTH_SHORT).show();
        Log.d("MainActivity", result.toString());
        List<BusLineResult.BusStation> steps = result.getStations();
        StringBuffer sb = new StringBuffer();
        for (BusLineResult.BusStation b:steps) {
            sb.append("-->");
            sb.append(b.getTitle());
        }
        Log.d("MainActivity", sb.toString());
    }

    @Override
    public void onGetPoiResult(PoiResult result) {

        if (result == null || result.error != SearchResult.ERRORNO.NO_ERROR) {
            Toast.makeText(this, "抱歉,未找到結(jié)果",
                    Toast.LENGTH_LONG).show();
            return;
        }
        // 遍歷所有poi,找到類型為公交線路的poi
        for (PoiInfo poi : result.getAllPoi()) {
            if (poi.type == PoiInfo.POITYPE.BUS_LINE
                    || poi.type == PoiInfo.POITYPE.SUBWAY_LINE) {
                //如下代碼為發(fā)起檢索代碼,定義監(jiān)聽者和設(shè)置監(jiān)聽器的方法與POI中的類似
                mBusLineSearch.searchBusLine((new BusLineSearchOption()
                        //我這里的城市寫死了,和我要查的是一樣的
                        .city("北京")
                        .uid(poi.uid)));
            }
        }
    }

    @Override
    public void onGetPoiDetailResult(PoiDetailResult poiDetailResult) {

    }

第五步:發(fā)起檢索(我這里相對(duì)簡(jiǎn)單,只是查出來了第一個(gè)結(jié)果,后期的一個(gè)完整的demo會(huì)有其他的結(jié)果)

 mPoiSearch.searchInCity((new PoiCitySearchOption())
                .city("北京")
                .keyword("717"));

我們來看下檢索出來的結(jié)果:

-->菜戶營橋東-->大觀園-->右安門西-->右安門內(nèi)-->南櫻桃園路口北-->牛街南口-->牛街禮拜寺-->牛街路口西-->廣安門內(nèi)-->廣安門北-->天寧寺橋西-->白云觀-->公安大學(xué)-->木樨地北-->玉淵潭東門-->釣魚臺(tái)-->甘家口北-->甘家口大廈-->二里溝西口-->四道口東-->白石橋南-->國家圖書館-->中央民族大學(xué)-->魏公村-->中國農(nóng)業(yè)科學(xué)院-->人民大學(xué)-->海淀黃莊南-->海淀黃莊北-->中關(guān)村南-->中關(guān)園-->中關(guān)園北站-->清華大學(xué)西門-->清華附中-->圓明園東門-->北京體育大學(xué)-->正白旗-->上地南口-->上地西里-->上地五街-->上地七街-->地鐵西二旗站

這里我們對(duì)比一下百度網(wǎng)頁中的結(jié)果(是一樣的哈)



后面的公交線路規(guī)劃(后期demo會(huì)有寫),在線建議查詢,線路規(guī)劃,實(shí)現(xiàn)的原理是一樣的,大家看下官方文檔就行了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容