惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - xiangyuecn

省市区县乡镇街道三级四级联动数据源:2026年民政部和统计局已不再公布行政区划代码,可改用直接调国家地名信息库的接口 uniapp中实现H5录音和上传、实时语音识别(兼容App小程序)和波形可视化 Shell脚本中文英文多语言国际化和命令行批处理(bash sh cmd bat)中定义函数的简单写法 Oracle数据库经纬度坐标查询优化与结果错误原因分析、SQL中WKT超长文本字符串处理 vue3实现H5网页录音并上传(mp3、wav)兼容Android、iOS和PC端 经纬度坐标为中心点生成米距离长度半径的圆形面,含java js源码+在线绘制,代码简单零依赖 网页js版音频数字信号处理:H5录音+特定频率信号的特征分析和识别提取 echarts map地图中绘制浙江省市区县乡镇多级联动边界下钻的最新geojson数据文件获取和更新 ArcGIS QGIS学习二:图层如何只显示需要的部分几何面数据(附最新坐标边界下载全国省市区县乡镇) 新开源HTML5单文件网页版ACME客户端,可在线申请Let's Encrypt、ZeroSSL免费HTTPS多域名通配符泛域名SSL/TLS证书(RSA/ECC/ECDSA) ArcGIS QGIS学习一:打开shp、geojson地图变形变扁问题(附最新坐标边界下载全国省市区县乡镇) 移动端实现HTML5 mp3录音踩坑指南:系统播放音量变小、一些机型录音断断续续 之 MediaRecorder和AudioWorklet的终极对决 从区划边界geojson中查询经纬度坐标对应的省市区县乡镇名称,开源Java工具,内存占用低、高性能 全国省市区县和乡镇街道行政区划矢量边界坐标经纬度地图最新数据免费下载 支持shp geojson json sql格式 几行代码把Chrome搞崩溃之:HTML5 MP3录音由ScriptProcessorNode升级成AudioWorkletNode采坑记 根据经纬度坐标获得省市区县行政区划城市名称,自建数据库 java python php c# .net 均适用 最新全国省市区县乡镇街道行政区划数据提取(2022年) 24位PCM采样数据转成16位算法,已实现PCM转WAV在线工具源码支持24bits、16bits、8bits (已过时)静态集成腾讯TBS X5内核WebView,从微信提取新版30M浏览器内核打包进apk
最新全国省市区县乡镇街道行政区划数据和坐标边界数据更新提取(2023年)
xiangyuecn · 2023-02-08 · via 博客园 - xiangyuecn

AreaCity 开源库整理了省、市、区县、乡镇街道四级行政区划数据,配套了在线工具转换成三级、四级联动JavaScript代码,使用自带的转换工具软件可以导入数据库;数据源自: 统计局、民政部、腾讯地图行政区划、高德地图行政区划,从这四大平台整合。

开源库内带有省市区三级坐标边界数据,数据来源:高德开放平台,使用配套提供的转换工具软件可以转换成shp、geojson、sql、导入数据库;另配套有开源Java查询工具,内存占用低,性能优良,1秒可查1万个以上坐标对应的城市信息。

截止到发文(2023-02-08),开源库内于2023年02月02日发布了新整理的最新版数据;行政区划数据更新频繁,仅区县每年都有好多个变更,统计局、民政部每年都会发布新数据(目前最新版的为统计于2022-12-29日发布的数据),不过需要自行处理;所以省市区数据需要经常去同步维护,好在这个开源库有在持续的长期维护,且有配套的转换工具,新数据发布后更新相对容易很多。

由于开源库更新维护数据比较及时,所以只要开源库没有被关闭,本文介绍的提取方法就一直适用,不仅仅是适用于今年; 比那些上传到下载平台就万年不更新的数据优秀很多。

一、最新版行政区划数据提取

1. 获取通用json格式文件

数据在线预览页面底下,提供了个在线转换工具,打开就是当前库里面整理好的最新版数据(开源库更新维护数据比较及时),能将省市区镇四级数据转成json格式文件,控制选项也丰富,想要导出一级、两级、三级、四级数据都可以:

通用json格式文件生成

转换好后直接可以下载到json文件,json文件对于跨平台使用很方便,不单单是网页里面使用,手机app、桌面程序、后端代码内使用均适用。

通过自定义功能可以导出任意格式的JSON数据,比如第三方开源的级联操作库需要特定结构的JSON数组,部分自定义操作参考:

2. 获取多级联动js版数据代码

数据在线预览页面底下,提供了个在线转换工具,打开就是当前库里面整理好的最新版数据(开源库更新维护数据比较及时),能将省市区镇四级数据转成多级联动js,控制选项也丰富,转成两级、三级、四级联动都可以,还能在页面上直接体验到四级联动下拉选择:

js多级联动代码生成

转换好后直接可以下载到js文件,其实js代码内已经内嵌了json格式的数据,并且封装好了多级联动js代码,我们只需要按代码内的说明,调用方法即可在html网页里面快速实现多级联动,用户选择后会有事件回调。

3. 导入数据库、导出SQL文件

导入前先下载好:

  1. 【转换工具软件】在数据在线预览页面内,点击转换工具软件链接可以下载到开源库提供的转换工具,使用此工具,可以将省市区镇四级行政区划数据导入到MySQL、SQL Server数据库,或者转换成sql文件(导入到其他兼容数据库);
  2. 【ok_data_level4.csv数据文件】在数据在线预览页面内,点击显示的数据下载链接,下载解压得到ok_data_level4.csv数据文件。

准备好后,打开转换工具,开始将数据导入数据库(这里导入的MySQL,导入SQL Server一样操作):

  1. 点击工具内的“高级>>”按钮,打开自定义脚本界面;
  2. 在脚本界面点击顶上的选择文件,选择下载解压的ok_data_level4.csv数据文件;
  3. 在内置脚本下拉框中选择“省市区镇导入数据库”选项,然后点击应用按钮;
  4. 在左侧界面的数据库设置中,选择类型为MySQL,填写好数据库连接端口+数据库名+账号密码;
  5. 自定义脚本界面中点击“导入数据库”按钮,等待一会,4万多条数据3分钟不到就就导入数据库了。

导入操作

MySQL客户端查看数据:

MySQL导入的数据

以上操作同样适用于SQL Server,一样的步骤,另外内置脚本中还支持“省市区镇转SQL”功能,可以直接导出SQL文件,可以导入到其他兼容的数据库。

4. 行政区划数据的一些要注意的地方

开源库会尽量和民政部的更新频率保持一致,但由于最为主要的两个数据源国家统计局腾讯地图行政区划更新频度并没有民政部高;因此省市区三级准确度和民政部准确度是一量级,并且要更完整些;第四级镇级主要由腾讯地图行政区划提供,腾讯数据源并不经常更新,因此会导致小部分新增、调整的城市第四级没有数据(会用上级数据补齐),使用前应该考虑此缺陷。

数据通过使用上级数据补齐的形式(具体细节请参考库文档后面的数据规则),使得任何一个数据都能满足省市区镇4级结构,没有孤立的(ID全局唯一),因此不管从哪级进行下级选择,都能进行有效操作。可以通过ID结构来识别这种补齐填充的数据,只要ID为上级的ID+多个0,就代表此数据为补齐填充数据,比如:东莞(4419)-东莞(441900),很容易鉴别出441900为补齐用的填充数据。

会发生补齐行为的数据很少,约50来个,主要为:直筒子市(东莞、儋州等)、省直辖县级市(济源、潜江等),他们的下一级仅有补齐的这条数据。另外直辖市(北京、天津等)下级也仅有一条数据,ID结尾为01(不包括重庆,重庆下级分成了市、县两个)。

数据中不包含大部分行政管理区(请自行查阅和行政区划的差别),比如:雄安新区、天府新区、苏州工业园区等。

二、省市区县坐标边界数据提取

省市区三级在线预览和下载:https://xiangyuecn.gitee.io/areacity-jsspider-statsgov/assets/geo-echarts.html ,提供了ECharts + 高德地图四级下钻代码。

  • 数据大小:13MB+压缩包 解压后130M+
  • 数据来源:高德开放平台
  • 文件格式:csv通用纯文本格式 (可转换成shp、geojson、sql、导入数据库)
  • 文件名:ok_geo.csv.7z
  • 坐标系:默认GCJ-02 (可转换成WGS-84、CGCS2000、BD-09等坐标系)
  • 更新频度:开源库一月一更(直接从高德同步,忙的时候没时间会久一点)

下载到的数据是最新的csv纯文本格式,可以自行转换成需要的格式;也可下载一下开源库提供的格式转换工具,工具支持将csv数据转换成:shp、geojson、sql、导入数据库、坐标系转换,功能比较丰富。

1. 转成GeoJSON文件

geojson是通用格式,可以在网页中使用:地图、ECharts 都能直接支持,也可以在GIS软件中打开和编辑边界。

  1. 打开下载的格式转换工具,选择下载并解压出来的ok_geo.csv文件;
  2. 点击转成geojson文件按钮,耐心等待一会,数据就导出完成了;
  3. 导出的json文件和csv文件在同一个目录内,默认是所有数据在一个json文件内,点开高级使用里面geojson拆分工具可以按省、市、区拆分成单独的小文件。

开源库另外配套有Java坐标边界查询工具:AreaCity-Query-Geometry,使用jts库geojson边界数据文件中查找出和任意点、线、面有相交的矢量边界,内存占用低,性能优良,1秒可查1万个以上坐标对应的城市信息;此工具自带了一个HTTP API服务,可以在在线预览页面的自定义数据源中进行调用测试,页面会立即绘制查询出来的边界图形。

2. 转成SHP文件

shp文件一般是在GIS软件中使用和编辑,比如:ArcGIS、QGIS软件;使用格式转换工具可以导出shp格式文件,导出操作和上面geojson文件一样,点击转成shp文件按钮即可导出。

3. 导入数据库、导出SQL文件

使用格式转换工具可以将省市区边界数据导入到数据库,使用数据库提供的空间查询可以轻松做到查询任意坐标点对应的省市区名称;也可通过后端程序查询出省市区多级边界数据WKT格式,供前端使用。

  1. 打开下载的格式转换工具,选择下载并解压出来的ok_geo.csv文件;
  2. 数据库设置中选择要导入的数据库类型,支持:MySQLSQL Server,再填写数据库连接,包括:端口、数据库名称、账号密码;
  3. 点击导入数据库按钮,等待一会,大约3分钟左右,所有数据就都导入到了数据库按今天日期新建的表里面。
对空间字段的查询,需要用`ST_AsText()`方法才能查询出字符串文本(WKT: Well Known Text),否则查询出来的是二进制数据
-- MySQL版:
SELECT id, name, ST_AsText(geo) AS geo, ST_AsText(polygon) AS polygon FROM 表名
-- SQL Server版:
SELECT id, name, geo.STAsText() AS geo, polygon.STAsText() AS polygon FROM 表名


省市区边界导入到了数据库后,我们就可以在在 `Java`、`Python`、`PHP`、`C#` 等程序中对数据库进行查询,通过SQL的空间计算函数`ST_Intersects`来查询一个坐标在哪些边界范围内,就能得到对应的省市区信息了
比如要查询坐标`lng:113.929976 lat:22.529497`是在哪个城市:
-- MySQL版:
SELECT id,deep,name FROM 表名 WHERE ST_Intersects(polygon, ST_GeomFromText('POINT(113.929976 22.529497)',0))=1
-- SQL Server版:
SELECT id,deep,name FROM 表名 WHERE polygon.STIntersects(geometry::STGeomFromText('POINT(113.929976 22.529497)',0))=1

注:csv文件内的边界数据默认是高德地图GCJ-02火星坐标系,如果需要其他坐标系,比如百度的BD-09或GPS的WGS-84,可以通过高级脚本中的坐标系转换插件进行转换,选择好对应的插件后,点击应用就可以了,在导入数据库时会自动进行坐标系转换。

三、乡镇级坐标边界数据获取

乡镇级的坐标边界数据未开源,但和省市区三级一样的可以在线预览,大约半年重新整合一次,数据参考文档和下载地址:https://xiangyuecn.gitee.io/areacity-jsspider-statsgov/assets/geo-level4.html

  • 数据大小:109MB+压缩包 导出后300M+
  • 数据来源:多个数据源整合
  • 文件名:ok_geo4_*.csv.7z
  • 坐标系:默认GCJ-02 (可转换成WGS-84、CGCS2000、BD-09等坐标系)

乡镇级坐标边界数据的使用方法和省市区三级一样,使用配套的转换工具可转换成shp、geojson、sql、导入数据库,请参考上面省市区三级的操作步骤。

【完】