爬取数据生成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文件...相关推荐

  1. python如何爬虫获取图形上点的坐标_python调用百度地图WEB服务API获取地点对应坐标值...

    本篇博客介绍如何使用Python调用百度地图WEB服务API获取地点对应坐标值,现有一系列结构化地址数据(如:北京市海淀区上地十街十号),目的是获取对应坐标值. 百度地图开发者平台路线规划使用说明网址 ...

  2. python调用百度地图实现导航_python调用百度地图WEB服务API获取地点对应坐标值

    本篇博客介绍如何使用Python调用百度地图WEB服务API获取地点对应坐标值,现有一系列结构化地址数据(如:北京市海淀区上地十街十号),目的是获取对应坐标值. 百度地图开发者平台路线规划使用说明网址 ...

  3. python调用高德地图api 可视化_Python:利用高德地图API实现找房

    记:本项目是在实验楼上看到的,但是上面的代码由于没有及时维护,爬虫文件的代码不再能完整的把所有房源信息爬取下来,我根据最新的58同城官网进行了研究,现在的官网的房源信息已经不是分页的了,而是拉到最后自 ...

  4. 利用高德地图关键字检索POI-实现仿微信发朋友圈搜索附近位置

    转载请注明出处:http://blog.csdn.net/Alpha58/article/details/57079874 前言 由于项目中需要实现搜索附近位置作为收获地址,所以采用了高德地图的关键字 ...

  5. python做地图导航_「Python」利用高德地图做你想做之事

    玩grasshopper基本上都知道OpenStreetMap 这个地图网站,毕竟有一个好用的地图插件,可以在Rhino中绘制出所需,但是一个不好的地方就在于国内的数据量太少,无法满足我们的需求. 此 ...

  6. python做地图导航_【Python】利用高德地图做你想做之事

    原标题:[Python]利用高德地图做你想做之事 [版权声明] 作者:CPF 如需转载请联系CPF 如有侵权请联系大水牛平台 玩grasshopper基本上都知道OpenStreetMap 这个地图网 ...

  7. 「Python」利用高德地图做你想做之事

    玩grasshopper基本上都知道OpenStreetMap 这个地图网站,毕竟有一个好用的地图插件,可以在Rhino中绘制出所需,但是一个不好的地方就在于国内的数据量太少,无法满足我们的需求. 此 ...

  8. 利用高德地图API获取任意两座城市之间的距离!异地也有惊喜!

    工作中有时会遇到这样一种场景:年末需要统计所有员工该年的航旅出差情况,然后根据他们的飞行距离补贴一定的交通费.例如如下所示情况: 然而,如果我们使用地图APP等工具逐一进行手工查询,在一家规模稍大的公 ...

  9. java实现高德地图app,Android 高德地图入门demo,最新高德地图实现方法,附源码及apk...

    [实例简介] Android 高德地图入门demo,最新高德地图实现方法,附源码及apk [实例截图] [核心代码] GaoDeDemo ├── GaoDeDemo │   ├── app │   │ ...

最新文章

  1. 2022-2028年中国互联网+不良资产处置行业深度调研及投资前景预测报告
  2. 线扫相机——机器视觉中无限制物体的检测
  3. mega_[MEGA DEAL]带有Kotlin捆绑包的完整Android Oreo(95%折扣)
  4. 思维训练素材整理【初级中阶高阶辅导】
  5. 【科普】数据中心“容灾”和“备份”的区别
  6. android 屏蔽home键操作
  7. mapper代理(十一)
  8. int linux 原子操作_linux c++编程之多线程:原子操作如何解决线程冲突
  9. 命令逐行显示_在LoadRunner中执行命令行程序之:popen()取代system()
  10. vscode如何查看修改过的部分_编辑器 VS Code 如何快速查看 Go 接口?
  11. python3.6.5安装成功为什么打不开_记录centos+python3.6.5安装ipython遇到的坑
  12. windows环境中JDK环境变量配置
  13. C#中String类的几个方法(IndexOf、LastIndexOf、Substring)
  14. C++的multi_map如何输出所有key值相等的元素
  15. 基于MVC .NET Core动态角色的授权
  16. Linux C | 查看二进制文件的小工具HexView
  17. python语言程序设计二级教程pdf_二级python语言程序设计教程
  18. javase(8)_集合框架_List、Set、Map
  19. Exchange 2003 反垃圾邮件
  20. 央视揭秘“微商传销”:通过朋友圈炫富发展下线

热门文章

  1. ActiveMQ知识概括
  2. Centos7.6安装stress工具
  3. Windows 下查看显卡使用情况
  4. ChatGPT怎么看?禾赛科技登陆纳斯达克,能否扛起“中概激光雷达第一股”的大旗?...
  5. Use Case的学习
  6. SPC5607B的eDMA模块使用示例
  7. 【MySQL】带你了解MySQL 如何学习MySQL以及MySQL的用途以及意义
  8. 逆向基础:软件手动脱壳技术入门
  9. 48所大学!20考研计算机/软件专业课变化的大学名单!
  10. 杭电计算机学院复试真题,2020杭州电子科技大学计算机学院考研复试公告