POIKit 用于提供一套简单、易用、稳定的 POI 获取与处理工具套件,方便相关从业者。
功能:
- POI搜索 (支持多线程并发)
- 地理编码 (支持多线程并发)
- 格式转换 (目前可转换geojson -> shp 、shp -> geojson/csv)
- 坐标转换 (支持wgs84/gcj02/bd09)
目前软件处于2.0版本,在1.0版本的基础上,增加了断点续爬功能,大幅优化了POI数据的获取速度。
希望各位多多尝试,多多提问题(The More Questions,The Better)。
若帮助到了您,点击 Github Star 就是对我们最大的肯定。
相较于1.0版本,2.0版本支持继续完成未执行完的任务,防止因为key的配额耗尽导致程序中断。
- 支持切换 key,继续上一未完成任务
- 若无 key 可切换,支持第二天 key 重置后,继续上一未完成任务
- 切分阶段支持多线程 😄
软件基于 Java 环境运行,需要首先安装 jre/jdk(1.8 版本),安装步骤如下:
- 下载JDK8,选择适合本系统的版本;
- 配置环境变量
JAVA_HOME
为安装目录,然后在Path
中添加%JAVA_HOME%\bin
; - 打开终端,输入
java -version
,若出现 Java 版本号为1.8,则配置成功。
下载最新发布的软件压缩包,以POIKit.zip
为例,解压缩后,双击start.bat
即可运行。linux 和 mac 用户可以使用 start.sh 启动。
目前只支持高德key,请前往高德控制台获申请Web服务类型的key。
以行政区为例,POI 搜索功能如下所示:
类型:050000;行政区:371723;阈值:850;线程数目:20;输出格式:geojson。
类型:010000;行政区:110000;阈值:850;线程数目:20;输出格式:csv。
类型:010000;行政区:110000;阈值:850;线程数目:20;输出格式:csv。
软件重启之后,会弹出弹窗提示是否继续执行上次任务。
继续爬取之前,用户可以更改高德key,用户类型以及线程数目。
允许 CSV 或 TXT 格式文件,必须至少指定 address 值。
当无版本更新时:
当有版本更新时:
功能配置参数如下表:
参数 | 说明 | 注意 |
---|---|---|
高德 key | 软件支持多个 key,不同 key 之间需要用逗号分割 | 使用英文逗号分割 |
开发者类型 | 个人开发者/个人认证开发者/企业开发者 | 用于设置 QPS 值,当用户设置线程数大于最大线程数,将强制设为最大线程,防止过高并发 |
POI 关键字 | 搜索关键字,如KFC,不同关键字之间使用逗号分割 | 使用英文逗号分割 |
POI 类型 | 搜索类型,可为分类代码或汉字,如 010000,不同类型之间使用逗号分割 | 英文逗号分割,若使用汉字,必须严格按照高德 POI 分类编码中的汉字编写 |
行政区 | 行政区六位代码 | |
矩形 | 格式严格遵循左上角经纬度#右下角经纬度,如133,34#135,30 | 经纬度坐标可以使用wgs84/gcj02/bd09坐标,请使用下拉框选择合适的经纬度坐标 |
自定义 | 支持用户上传 geojson 边界文件 | 经纬度坐标可以使用wgs84/gcj02/bd09 坐标,类型可以为Polygon或MultiPolygon |
初始网格数 | 初始网格剖分数目 | 一般情况按默认值为 4 即可 |
阈值 | 当该网格 POI 数量超出阈值,会对网格进一步四分 | 一般情况下按 850 即可 |
线程数目 | 线程数量一般不大于 QPS * keys_num。对于单个key,个人开发者最多设为 20,个人认证开发者最多设为 50。如果爬取过程中发生QPS超限错误,建议降低线程数。 | QPS 可以在流量限制说明查看 |
输出格式 | 目前支持 geojson、shp、csv、txt | 结果包含 gcj02 和 wgs84 两种坐标,若输出格式为 geojson 或 shp,默认使用 wgs84 坐标 |
输出参数说明:
参数 | 说明 |
---|---|
name | 名称 |
type | 兴趣点类型 |
typecode | 兴趣点类型编码 |
address | 地址 |
pname | POI 所在省份名称 |
cityname | 城市名 |
adname | 区域名称 |
gcj02_lon | gcj02 经度 |
gcj02_lat | gcj02 纬度 |
wgs84_lon | wgs84 经度 |
wgs84_lat | wgs84 纬度 |
功能配置参数如下表所示:
参数 | 说明 | 注意 |
---|---|---|
高德 key | 软件支持多个 key,不同 key 之间需要用逗号分割 | 使用英文逗号分隔 |
开发者类型 | 个人开发者或个人认证开发者或企业开发者 | 用于设置 QPS 值,当用户设置线程数大于最大线程数,将强制设为最大线程,防止过高并发 |
线程数目 | 线程数量一般不大于 QPS * keys_num(例如单个认证开发者key,线程数小于等于50 = 1 * 50) | QPS 可以在流量限制说明查看 |
输入文件 | 支持 csv 或 txt 格式文件 | 至少需要包含address字段 |
输出目录 | 结果输出路径,目前地理编码结果包括 gcj02 和 wgs84 两种坐标 | - |
注意:
- 若地理编码过程中 key 池额度用尽,软件会停止地理编码,但不会删除之前得到的数据,仍会导出。
- 若地理编码过程中,用户点击取消,软件会停止地理编码,不会导出。
输出参数说明:
参数 | 说明 |
---|---|
formatted_address | 结构化地址信息 |
country | 国家 |
province | 地址所在的省份名 |
city | 地址所在的省份名 |
citycode | 城市编码 |
district | 地址所在的区 |
adcode | 区域编码 |
street | 街道 |
number | 门牌 |
level | 匹配级别 |
gcj02_lon | gcj02 经度 |
gcj02_lat | gcj02 纬度 |
wgs84_lon | wgs84 经度 |
wgs84_lat | wgs84 纬度 |
功能配置参数如下表所示:
参数 | 说明 |
---|---|
输入文件 | 支持 geojson 或 shp 格式文件 |
输出格式 | 若选择 geojson,则可以输出 shp,若选择 shp,则可以输出 geojson 或 csv |
输出目录 | 结果输出路径 |
功能配置参数如下表所示:
参数 | 说明 |
---|---|
输入文件 | 支持 geojson 或 shp 格式文件 |
输入坐标格式 | 即输入文件的坐标格式,wgs84/gcj02/bd09 |
输出目录 | 结果输出路径 |
输入坐标格式 | 即输出文件的坐标格式,wgs84/gcj02/bd09 |
目前软件采用 MVC 软件架构模式,技术选型如下:
若遇到任何问题,你可以通过以下方式联系我们:
- 邮箱:[email protected],我们会定时查看邮箱,但不保证实时性;
- 用户 QQ 群:1097532420
- 提 issue:这是我们推荐的方式,有问题时,也应该首先查看 issue 列表是否已有该问题的解答;
若帮助到了您,Github Star 是对我们最大的肯定。
- v2.0.0 2022-04-23
- 【重要更新】poi爬取支持断点续爬,key的配额耗尽后,可以隔天继续任务,或替换其他key
- 【重要更新】poi爬取的全过程支持多线程执行,大幅度优化爬取速度
- 【重要更新】增加新版本更新提示功能
- UI界面优化:增加若干提示;优化参数的输入体验;优化Alert界面的按钮样式;
- 优化结果输出格式,提供更多信息,包括任务整体执行状态、与错误代码对应的中文帮助等
- 若干bug修复
- v1.0.1 2022-03-19
- UI 美化
- 添加失败文件功能,一定程度上确保能够爬取更多的数据,且防止卡死
- v1.0.0 2022-03-17
- 增加超时
- v0.0.5 2021-04-27
- 行政区、用户自定义文件爬取得到的 POI 不再是其外接矩形的 POI,即用户不需要再做裁切处理;
- 完成坐标转换工具开发,进行 wgs84、gcj02 和 bd09 坐标之间的转换,文件格式支持 geojson/shp,其中 geojson 支持 Point、MultiPoint、LineString、MultiLineString、Polygon 和 MultiPolygon,不支持 GeometryCollection;
- 使用不同的线程控制机制,能够增加线程数目,更加快速的获取 POI;
- UI bug 修复、cpg 文件生成修复等。
- v0.0.4 2021-04-26
- 添加选取坐标类型(gcj02/wgs84)功能
- 初步完成 geojson 转 shp,shp 转 geojson,shp 转 csv
- 添加 cpg 格式文件,防止乱码
- 若干 bug 修复
- v0.0.4-alpha 2021-04-23
- 添加 POI 检索错误码输出;
- 修改地理编码返回字段;
- 添加开发者类型选择下拉框,防止过高并发;
- 解决点击“执行按钮”卡顿 bug;
- 【重要更新】POI 搜索添加导出 shp 功能
- v0.0.3 2021-04-23
- 线程池运行优化;
- 添加运行状态提示
- v0.0.2 2021-04-22
- 修复重复 bug;
- v0.0.1 2021-04-20
- 初步实现软件及安装文档;
GPL-3.0 License © Civitasv