問世間POI(興趣點)為何物?如何獲取?
來自專欄 RS&GISer的學習筆記8 人贊了文章
何為POI(興趣點)?
POI數據:嚴格來說屬於矢量數據,不過是最簡單的矢量數據,換句話來說就是坐標點標註數據(上圖中藍色的球球就可以看作POI點,此數據為國家5A景區數據的截圖)。也是電子地圖上最常用的數據圖層。
我們日常在電子地圖上所使用的數據都是POI數據(就是地圖上常見的那種標個氣球的點)。POI數據只是信息關聯坐標點的數據,不涉及到線和面,是最簡單的矢量數據,用於簡單的地點標註而不需要相應地物輪廓的需求。POI數據的內容五花八門,一般POI數據的供應商提供的POI數據都是日常常用的場所數據,例如飯店,商店,加油站,銀行等日常常用設施。當然,在一些特殊的地圖應用領域,也可以委託這些數據供應商或者自行去專門採集特殊用途的POI數據,例如井蓋,消防栓等。以上內容摘自大佬 @天光 的精彩回答:知乎用戶:百度地圖、高德地圖的數據從哪裡得到的?
那麼如何獲取像百度地圖或者高德地圖的POI數據?
以下為原文:
有一個好的師哥是真的棒!姑且稱他俊哥,嘿嘿,真的感謝俊哥給了這樣一個鍛煉自己的機會(說實話...我對自己的編程能力是真的不自信...但師哥不僅每天問一下進展,而且對我不懂的地方真的是手把手教學...),這幾天每次得熬到三四點,早上八九點又爬起來繼續搞,確實心累但是真的很充實!
這篇筆記權且當做最近凌亂工作的梳理了...反正不是v,沒人看,嘻嘻
是這樣,這幾天俊哥給了個有意思的事讓俺做,利用ArcGIS漁網製作的城市格網數據以及百度的行業分類表通過調用百度WEB服務API進行矩形區域的檢索從而獲得——所需區域的各行業的POI數據(Point Of Instrest-興趣點)並將POI相關信息寫入資料庫(SQL Server)
一:格網數據的相關操作
此圖即為依據廣州市所建立的格網(密密麻麻的綠色線條),此格網在於將縱線橫線之交點坐標寫入屬性表並導出轉換為csv文件,這樣就得到了數條記錄。
這是邁出的第一步(有點耗時,但為最基本的必需品,畢竟失去了空間位置,GIS就沒有了實際意義)。
二:構建供給請求的url
百度提供開放的API介面(不只是百度,還有高德等地圖產業巨頭)真的是很贊的一件事,小的方面說沒有介面我爬個毛線,大的方面說這肯定促進GIS行業的發展。
這個橙色的類似網頁的東東就是url,這東西是幹啥的呢,通俗的來說就是百度說你從我這拿走信息可以但是你得按規矩來請求,首先最起碼你得申請個密鑰,不然隨便一個人都能從我這搞走信息我又不知道你是不是我這註冊過的用戶,然後,看裡面的要素有query=?,bounds=?等等,第一步所提取的格網數據這裡就用在bounds這一要素中,而query百度有提供
在進行完構造url後,第二步基本就完成了。
三.解析json
因為url請求返回的是json(我們用的json,xml也可以,服務文檔里都可以看的)
url相當於一個網址,點開一個url,界面如圖:
現在要做的就是把這些信息有規律的提取出來,我的思路是構造一個list[]列表,依據total這個參數進行逐點(POI)相關信息的寫入
四.連接並寫入資料庫
開始對接資料庫,首先要與自己的資料庫進行連接...涉及自己的資料庫信息就不展示了...(萬一你拿我資料庫的密碼登我qq呢...)....雖然我資料庫的密碼不是qq密碼
對接資料庫其實都是老套路
# 打開資料庫連接
conn=(dhhdbavftvshajfnfr)# 使用cursor()方法獲取操作游標
# 如果數據表已經存在使用 execute() 方法刪除表。cursor.execute(「如果有就建,沒有則刪")# 創建數據表SQL語句sql = """執行插入語句"""cursor.execute(sql)# 關閉資料庫連接conn.commit()conn.close()
看我也沒用...套路就這樣...
寫進資料庫里大致就是這樣
完成以上過程便實現了POI的獲取。
推薦閱讀: