文章版權由作者李曉暉和博客園共有,若轉載請於明顯處標明出處:http://www.cnblogs.com/naaoveGIS/。
1.前言
在內網項目中需要展示興趣點,而此時對方並沒有提供興趣點數據,同時也不能通過百度在線服務去獲取時,能夠將百度的興趣點趴取組織然后存放在本地顯得十分有用。如果,還能將百度興趣點的坐標逆轉換成本地坐標系下的坐標,那么剛才描述的這個問題也便能迎刃而解。
百度服務端提供了請求興趣點的接口。對於一般用戶,一個key一天可以請求的上限是10W次。基於此服務,我們便可以開展百度興趣點下載工具的研發。
2.思路
3.實際開發中遇到的問題
3.1 請求返回的數據個數問題
不管我們向百度的后台請求的范圍是多大,其返回的總數(不是指每頁數量)最多不會超過400個。
所以,如果想盡可能多的下載到范圍內的興趣點,我們需要做到以下兩步:
a.盡量使用范圍來進行請求。
b.將范圍進行格網化,並且此格網大小要合適。選擇1KM作為格網划分單位比較合適。然后按照格網范圍進行請求。
在開發過程中,涉及到首先遍歷所有格網,其次在每次遍歷中,根據第一次返回的total以及pagesize做遞歸或者堆棧循環。
3.2興趣點uid重復問題
根據自身所需的關鍵字組合而獲取的所有興趣點中,會出現uid重復問題。這個主要是某個興趣點同時屬於多個關鍵字。
所以在后台進行數據整合時,需要進行過濾。
4.優化
4.1 多線程下載
使用多線程下載可以比較好的解決下載速度問題。但是如何划分每個線程所管轄的下載范圍,每個線程負責下載的關鍵字,線程開啟多少合適,需要測試優化。
4.2 數據保存問題
數據有可能存在到多種數據庫中。這里如果可以生成中間緩存文件。然后再導入進所需的數據庫,能規避許多不必要深究的問題。
並且多線程同時操作相同的文件,容易出現線程堵塞或者資源搶占錯誤。這里建議以不同線程對應不同臨時文件來解決。
4.3 錯誤記錄修復
在請求解析時,難免會出現返回結果不正確導致的解析錯誤等其他問題。這里需要對錯誤請求進行記錄。並且提供修復功能。
4.4 嵌入網頁地圖
后續中可以嵌入網頁地圖,方便選擇范圍。
5.已完成的工具展示
-----歡迎轉載,但保留版權,請於明顯處標明出處:http://www.cnblogs.com/naaoveGIS/
如果您覺得本文確實幫助了您,可以微信掃一掃,進行小額的打賞和鼓勵,謝謝 ^_^