java aoi 服务器地图_GitHub - WanZixin/getShp: 利用高德地图web服务API获取坐标串,生成行政区和aoi的shp文件...
爬取數據生成shp文件
1.功能簡介
共有兩大功能,一個功能是根據高德地圖web服務API獲取行政區劃坐標串,寫入行政區shp文件;另一個功能是根據高德地圖的接口獲取poi坐標串,寫入aoi(area of interest)的shp文件。
2.文件說明
lib文件夾,包含兩個xls文件,分別是高德地圖的城市編碼表和POI分類編碼表。
result/district_shp文件夾,用于存儲生成的行政區shp文件。
result/aoi_shp文件夾,用于存儲生成的aoi的shp文件。
config.ini文件,配置文件,填寫高德地圖web服務的key;填寫要爬取的poi的類別編碼;填寫爬取城市的adcode。
getPoiShp.py文件,生成指定專題、指定城市的aoi的shp文件。
getDistrictShp.py文件,生成行政區劃shp文件。
gcj02togps84.py文件,高德地圖使用的是GCJ-02坐標系,用此py文件轉換為WGS-84坐標系。
GCJ-02是由中國國家測繪局(G表示Guojia國家,C表示Cehui測繪,J表示Ju局)制訂的地理信息系統的坐標系統。它是一種對經緯度數據的加密算法,即加入隨機的偏差。國內出版的各種地圖系統(包括電子形式),必須至少采用GCJ-02對地理位置進行首次加密。
3.程序思路
在具體操作前,首先需要注冊高德地圖開發者賬號,然后申請Web服務API密鑰(Key)。
3.1獲取行政區的shp文件
構造
的請求URL,例如;http://restapi.amap.com/v3/config/district?key=&keywords=&subdistrict=&extensions=all。須注意的一點是:extensions參數應為all,若為base則只返回基本信息,其中不包含坐標串。
將獲取到的坐標串,從GCJ-02坐標系轉換為WGS-84坐標系。
利用第三方庫pyshp,將返回的坐標串寫入對應的shp文件。
3.2獲取aoi的shp文件
構造
的請求URL,搜索POI有四種方式,分別是:關鍵詞搜索、周邊搜索、多邊形搜索和ID查詢。這里我們使用關鍵詞搜索的方式,指定city并設置citylimit為true,只搜索城市內的數據。例如:https://restapi.amap.com/v3/place/text?keywords=北京大學&city=beijing&output=xml&offset=20&page=1&key=&extensions=all。
若返回的數據包含邊界坐標則寫入對應shp文件,若返回的數據不包含邊界坐標則將其父poi的id和name加入循環列表。
4.第三方依賴
requests
configparser
5.注意事項
result/district_shp文件夾中,分別包含有中國各省份、湖北各城市、武漢行政區的個人地理數據庫。result/aoi_shp文件夾中,分別包含有武漢市高等教育院校、武漢市公園、武漢市景點的個人地理數據庫。這些數據是在ArcMap中構建的數據庫,一并上傳,供需要的讀者下載使用。
cookies參數,在getPoiShp.py文件中的getRawData函數中指定在headers參數中。config.ini文件中cookies參數配置,因為cookies中的=和;對ini文件的讀取造成了困擾,以后有機會完善。
每一個shp文件寫入成功后,在控制臺會輸出提示,注意查看。
若想研究pyshp的用法,推薦查閱pyshp的github頁面,其作者的文檔很詳細。筆者額外加了寫入.prj文件的代碼。
6.Contact Me
如果有什么建議,歡迎聯系我 zixinwan@foxmail.com 或提issue。歡迎star!
總結
以上是生活随笔為你收集整理的java aoi 服务器地图_GitHub - WanZixin/getShp: 利用高德地图web服务API获取坐标串,生成行政区和aoi的shp文件...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RootExplorer怎么样获取roo
- 下一篇: [转载]JScript 语法错误