POI興趣點搜索 - 地理信息系統(6)


(2017-08-13 銀河統計)

POI(Point of Interest),中文可以翻譯為“興趣點”,興趣點(POI)是地理信息系統中的一個術語,泛指一切可以抽象為點的地理對象,尤其是一些與人們生活密切相關的地理實體,如學校、銀行、餐館、加油站、醫院、超市等。每個POI包含四方面信息,名稱、類別、經度、緯度。POI(興趣點)是有分類的,有一級類、二級類甚至更多類,每個分類都有相應的行業的代碼和名稱對應。方便信息采集的記錄和區分。

興趣點查詢是通用搜索引擎發展到一定階段后,隨着用戶的個性化服務需求而出現的,即是按照用戶的興趣選擇相應類別,查詢相關的POI信息。對於LBS(基於位置的服務)用戶而言,可以通過輸入關鍵字進行屬性查詢,如查詢名為“XXX”的酒店;也可以按范圍和類別進行查詢,如查詢5km范圍內的加油站。興趣點查詢方法類似於Web搜索方法,可采用布爾邏輯模型、向量空間模型和概率模型等數學模型來建立查詢檢索模型。

1、百度POI興趣點索引

一級興趣點   二級興趣點   三級興趣點 

注:百度興趣點為三級分類,在后面各類興趣點搜索中,應參考興趣點索引關鍵字進行不同范圍搜索

2、城市興趣點(或關鍵詞)搜索

興趣點或關鍵詞  &nbsp城市名稱   

注:輸入興趣點(參考POI興趣點索引)或關鍵詞(如家樂福、麥當勞等感興趣的詞);鼠標點擊要搜索的城市(北京等大城市需要等幾秒鍾以便回調獲得興趣點信息);點擊“轉換為興趣點信息列表”按鈕獲得信息表。

代碼樣例

<!DOCTYPE html>  
<html>  
<head>  
<meta charset="utf-8"/>
<title>批量獲取模糊搜索地址名稱及坐標</title>
<meta name="Keywords" content="批量,獲取坐標,模糊搜索">
<meta name="Description" content="本網頁提供了批量搜索地名並返回地址及坐標的功能!">
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.2"></script>
</head>
<body>
    <P>搜索城市<input id="txtCity" type="text" value="北京市" /></n>
    <p>地名關鍵詞<input id="txtSearch" type="text" value="肯德基" />
    <input type="button" value="生成坐標序列" onclick="search()" /> </n>
    <p>顯示結果<textarea id="txtResult" rows="10" cols="100" value="" />
    </textarea>
    <div id="divMap" style="display:none"></div>
    <script type="text/javascript">
    function $(id){
    return document.getElementById(id);//定義$,以便調用
    }
    var now=new Date();
    var map = new BMap.Map("divMap");//創建地圖
    function search(){
    $("txtResult").value="";
    map.clearOverlays(); //清除地圖上所有標記
    var c=$("txtCity").value;
    var ls = new BMap.LocalSearch(c,{renderOptions:{map:map,selectFirstResult:false,autoViewport:false}});
    ls.setPageCapacity(50);
    var s=$("txtSearch").value;
    ls.search(s); 
    var i=1;
    ls.setSearchCompleteCallback(function(rs){
        if (ls.getStatus() == BMAP_STATUS_SUCCESS){
                var str ="";
                for(j=0;j<rs.getCurrentNumPois();j++) {
                    var poi=rs.getPoi(j);                        
                    str +='(' + i + ',' + j +  ')' + poi.title+":" +poi.point.lng+","+poi.point.lat+'\n';
                }
                $("txtResult").value+= str 
                if(rs.getPageIndex!=rs.getNumPages()) {
                    ls.gotoPage(i);
                    i=i+1;
                }    
        }
    });}
</script>
</body>
</html>

3、城市局部興趣點(或關鍵詞)搜索

在全部城市范圍內搜索某個興趣點或關鍵詞,有時返回信息數量過多(1000條)會受到系統的限制。可以縮小搜索范圍,在城市局部搜索興趣點或關鍵詞地理信息。

興趣點或關鍵詞  &nbsp區域  &nbsp城市     

注:輸入興趣點和城市,同時輸入區域名稱。以哈爾濱市為例,可以輸入“工大、愛建、道外、顧鄉”等區域名稱;或以北京市為例,將興趣點改為“小吃”、區域改為“前門”、城市改為“北京”。輸入完各個參數后,點擊“獲取信息”、然后點擊“轉換為列表”

代碼樣例和上例城市興趣點(或關鍵詞)搜索基本一樣,只把代碼中,

ls.search(s); //s為興趣點

修改為,

ls.searchNearby(keyword,somewhere);  //keyword為興趣點、somewhere城市內區域名稱

即可。

4、城市內以某點為圓心、指定半徑圓形區域內興趣點搜索

在一城市內搜索指定原點(經度和緯度坐標)和半徑的圓形區域內的興趣點。

興趣點  &nbsp經度  &nbsp緯度  &nbsp半徑  &nbsp城市     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM