地名地址楼栋号爬取工具
基于高德/百度的地名地址爬取工具
利用两者api进行格网式分类别进行数据爬取
1、 对于地名地址的项目中楼栋号处理
(1)甲方给与的建筑物矢量面进行arcgis转点,然后要求落在建筑物面内。
(2)通过获得的点的经纬度坐标采用高德/百度的POI工具,通过逐步扩大检索半径的方式,获得楼栋号。
楼栋所在小区的街道和街道号,由于小区门沿街多个,目前采用人工网络检索和实地核实的方式。
2、 对于地名地址的获取
(1)由于甲方提供的数据不够细致和准确,因此采用全面网络爬取的形式获取数据。
(2)对于这些数据的获取,采用网格化分类别批量获取形式,首先对行政区划的shp进行渔网化,间隔在经度0.02,纬度0.03度划分,生成的网格为矩形,根据shp删除掉无用的格网,利用下式求得左下右上坐标。
ArcGIS中求多边形的四至点可以直接根据字段计算器,利用Python语句直接求得
minX = !shape.extent.xmin!(输入时不用等号“=”前面的minX或MaxX等,直接用两个叹号和中间的。前面也不要有空格)
maxX= !shape.extent.xmax!
minY= !shape.extent.ymin!
maxY = !shape.extent.ymax!
(3)利用求得的坐标进行转换、矩形化检索poi,百度采取的是左下右上坐标形成矩形,高德则采用左上右下坐标。模板中采用左下右上坐标的记录方式。
(4)对于实际操作中,最好是对获取的网格进行分批次进行。选择poi类型中,高德的poi标准更为详细,更为实用,都有专门针对楼栋号的分类。选择poi分类时尽量不要全选分类,因为高德和百度都对数据进行了保护,高德一次返回800+条则表示超限,未全部返回,百度则是最大400条,而且百度分页时total值乱七八糟。
(5)通过经验分析,将高德的Poi分类分成三阶:
A第一阶:此四项分类数据量大,建议勾选一项进行爬取
B第二阶:此八项可两两勾选进行爬取
C第二阶:此七项数据量较少,可以全选七项爬取。
百度POI暂未分析,异曲同工吧。
对于爬取到的数据,大多没有清晰街道和街道号,因此需要在记录数据的时候进行一次根据经纬度/地名的逆地理编码/地理编码,获取街道和街道号,尽管如此仍需要进行外业审核。
注意:地名地址的爬取,由于数据量大,数据需要外业和内业处理的也比较多。
上图
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200506095828858.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zOTgyMzM2Nw==,size_16,color_FFFFFF,t_70#pic_center
开发者:cookie