獲取百度地圖POI數據一(詳解百度返回的POI數據)


       POI是一切可以抽象為空間點的現實世界的實體,比如餐館,酒店,車站,停車場等。POI數據具有空間坐標和各種屬性,是各種地圖查詢軟件的基礎數據之一。百度地圖作為國內頂尖的地圖企業,其上具有豐富的POI數據,要獲取其上的POI數據可以根據百度地圖提供的API,但是這種方式有限制,能獲取的數據極少。本文將詳細介紹通過模擬HTTP請求的方式獲取其上的POI數據。

      當我們在百度地圖的搜索框中通過輸入關鍵字進行搜索時,這其實就是發送一個HTTP請求到百度的服務器,然后服務器返回數據。

 

  打開網頁的調試面板可以清楚的看到這些請求  以及服務器返回的數據   這些數據都是JSON格式的   在地址欄中輸入請求的url  http://map.baidu.com/?newmap=1&reqflag=pcmap&biz=1&from=webmap&da_par=direct&pcevaname=pc4.1&qt=s&da_src=searchBox.button&wd=%E4%BA%BA%E5%90%8D%E5%B9%BF%E5%9C%BA&c=289&src=0&wd2=&sug=0&l=17&b=(13522376.995,3640442.635;13522548.995,3641718.635)&from=webmap&biz_forward={%22scaler%22:1,%22styles%22:%22pl%22}&sug_forward=&tn=B_NORMAL_MAP&nn=0&u_loc=13506522,3642064&ie=utf-8&t=1500039457397  

之后便能看到返回的JSON數據  將這些JSON文本復制到JSON在線校驗的網站(如 www.json.cn)上可以更清楚的看到其中的信息

  

 

 如上圖所示   一個url返回這樣一些數據  我提取的是其中content節點中的數據   在這個節點中  一個url最多返回十條數據  一條數據中包含很多個子節點數據  其中 

x,y節點中的數據可以用來獲取這條數據的坐標信息    百度的坐標系統有百度米制坐標和百度經緯度坐標   從x,y節點數據經過轉換即可獲得這兩個坐標,這個在稍后的會講解。

要想通過程序模擬構建url來發送http請求  就需要先了解url的參數構成   經過本人的多次嘗試  將url參數減少為

http://map.baidu.com/?newmap=1&reqflag=pcmap&biz=1&from=webmap&da_par=direct&pcevaname=pc4.1&qt=s&da_src=searchBox.button&wd=人民廣場&c=289&pn=0

最重要的就是最后三個參數  wd是搜索的關鍵詞   c是搜索區域對應的城市編碼,上海市對應的就是289  pn是返回數據的頁碼  不同的搜索關鍵詞返回的數據的頁數是不同的   因為百度會返回很多相關的信息(POI數據)

我是通過關鍵詞得到百度百度返回的POI數據的   這就需要在url的參數中輸入不同的關鍵詞和頁碼來獲取不同的POI數據    那么事先就應該准備很多搜索的關鍵詞 盡可能多的關鍵詞可以獲取更多的POI 數據       下篇會講解該如何准備百萬級別的搜索關鍵字

 


免責聲明!

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



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