javascript
百度地图POI的边界GEOJSON数据采集
經過數天的技術攻關,終于成功從百度地圖APP采集到POI的邊界數據,并成功進行了坐標數據還原和邊界數據驗證。下面詳細介紹一下。
如下所示,是從百度地圖APP采集到的某小區(uid為ba9b506a87e4f43cf32d8314)的基本信息和邊界GEOJSON數據:
view plaincopy to clipboardprint? uid: ba9b506a87e4f43cf32d8314
name: 振業泊公館 addr: 西安市灞橋區廣安路800號 geo: Point [x=12139200, y=4046920]
cityId: 233 tel: (029)83531888 zip: null nearby: null geojson:
{“dataset”:[{“ud”:“ba9b506a87e4f43cf32d8314”,“ty”:33,“nst”:60,“fst”:0,“of”:15,“in”:0,“tx”:“振業泊公館”,“sgeo”:{“bound”:[12138948,4046770,12139454,4047084],“type”:3,“elements”:[{“points”:[12139329,4047084,99,-203,26,-30,-3,-59,-459,-23,-30,16,-8,26,1,52,-7,131,56,19,4,17,3,53,318,2]}]}}]}
該POI在百度地圖APP中的邊界截圖如下:
下面分析一下返回的GEOJSON數據的含義。
先看下POI的位置坐標參數,如下:
view plaincopy to clipboardprint? geo: Point [x=12139200, y=4046920]
將[x=12139200, y=4046920]墨卡托坐標轉換為經緯度坐標為(109.047102,34.315398)。
可以通過坐標拾取系統的坐標反查功能驗證一下,如下圖所示,位置正確:
再重點看GEOJSON的含義,為了便于查看,JSON數據格式化后如下圖所示:
猜測邊界信息位于"points"中。但是points數據看起來很奇怪,不是正常的經緯度組。
猜測1,按前后順序每兩個為一組經緯度。
前兩個看起來是應該墨卡托坐標,后面的數字很小,而且有負數,很奇怪。
猜測2,從第二組數字起,值為相對于前一組數據的差值。例如第二組數據是(99, -203),真實值應該是(12139329 + 99, 4047084 - 203),即(12139428, 4046881)。
下面驗證下上述猜測是否正確。按上述思路將points中的墨卡托坐標對進行修正:
修正后的13組墨卡托坐標對如下:
再將其轉為經緯度坐標對,如下:
使用百度地圖API標注,代碼如下:
標注效果如下:
和百度地圖中查詢出來的該小區邊界對比一致,如下圖。
再找另一個POI驗證一遍,從百度地圖APP采集到的小區(366581fe3fd52baa714b871e)的基本信息和邊界信息如下:
修正后的墨卡托坐標組:
修正后的墨卡托坐標組:
百度地圖API標注測試,測試結果截圖:
和直接通過百度地圖中查詢出來的邊界是吻合的,如下圖所示。
再找一個邊界復雜點的小區驗證下,從百度地圖APP采集到的小區(50fe0b843b8fa7ed0b1cc7b9)的基本信息和GEOJSON數據如下:
如下圖所示,上面是在百度地圖中查詢出來的“自然界·云棲”小區的邊界,下面是我們采集到的邊界參數經過API標記后的結果。上下是吻合的。
再來一個邊界更復雜的POI:
如下圖所示,上面是百度地圖查詢結果,下面是我們采集標注的結果。
了解更多分析及數據抓取可查看:
http://cloud.yisurvey.com:9081//html/37be8794-b79e-4511-9d0a-81f082bac606.html
本文轉載自互聯網、僅供學習交流,內容版權歸原作者所有,如涉作品、版權和其他問題請聯系我們刪除處理。
特別說明:本文旨在技術交流,請勿將涉及的技術用于非法用途,否則一切后果自負。如果您覺得我們侵犯了您的合法權益,請聯系我們予以處理。
總結
以上是生活随笔為你收集整理的百度地图POI的边界GEOJSON数据采集的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 跨平台的EA交易: 信号
- 下一篇: CURD