空间流行病学地图数据库

中国官方最新地图下载(付源码 2022版)

2022-06-14  本文已影响0人  jamesjin63

前言

我们在进行数据可视化,或者发表文章时候,如果碰绘制中国地图问题,请记住,一定要使用中国标准地图。

但是,平时网上的案例,或者下载的地图,都是缺失台湾或者西藏交界有缺失,这都是丢失国家领土主权的。

中国标准地图的绘制尤为重要,涉及到国家的领土主权。标准的中国地图如图所示;这里的地图来源于中国民政部官网 。请大家在进行案例操作或者可视化展示时候,一定要切记国家的领土主权的完整。使用标准的中国地图。

另外还要一个问题,网络上中国地图资源很多,但是要么收费,要么不标准,这也是今天介绍此次博客的原因,给大家提供一个标准化的连接,即以后的绘图,都是标准的中国地图。避免引起国家的领土主权的问题。

今天就给大家介绍如果下载标准的中国地图数据,包括Shp文件Json文件。

image.png

数据源1-中国民政部官网

中国民政部官网【http://xzqh.mca.gov.cn/map】提供了省级县级两种类型的地图,其审图号为:GS(2022)1873. 已经更新到2022年。

下面是R的获取代码:

library(geojsonsf) ## 加载包
library(sf)
library(tidyverse)

######################################
# source1 民政部
# link: http://xzqh.mca.gov.cn/map
######################################

## 1.全国省级
China = st_read(dsn = "http://xzqh.mca.gov.cn/data/quanguo.json", 
                stringsAsFactors=FALSE) 
st_crs(China) = 4326
# plot

ggplot(China)+
  geom_sf()+
  labs(title="Ministry of Civil of PRC",x="Lon",y="Lat") 

China

Simple feature collection with 156 features and 4 fields
Geometry type: POLYGON
Dimension:     XY
Bounding box:  xmin: 73.67795 ymin: 3.984257 xmax: 135.2075 ymax: 53.64847
Geodetic CRS:  WGS 84
First 10 features:
     id   NAME QUHUADAIMA FillColor
1  <NA> 710000    daodian          
2  <NA> 440000    daodian          
3  <NA> 710000    daodian          
4  <NA> 710000    daodian  

注意:我们用的连接是http://xzqh.mca.gov.cn/data/ + quanguo.json

image.png

全国县级地图

这里我们只需要更改http://xzqh.mca.gov.cn/data/ + quanguo.json

## 1.全国
Chinaxian = st_read(dsn = "http://xzqh.mca.gov.cn/data/xian_quanguo.json", 
                stringsAsFactors=FALSE) 
# 转至CRS 4326
st_crs(Chinaxian) = 4326
# plot
ggplot(Chinaxian)+
  geom_sf()+
  labs(title="Ministry of Civil of PRC",x="Lon",y="Lat") 

[图片上传失败...(image-e4d075-1655205520503)]

江苏省地图

当然也可以获取某个省市级别的地图,只需要在http://xzqh.mca.gov.cn/data/ + 省市的地址编码.json这里演示江苏省的地图,江苏省的地址编码为320000

X = st_read(dsn = paste0(API_pre, "320000.json"), 
                stringsAsFactors=FALSE) 
st_crs(X) = 4326

# plot
ggplot(X)+
  geom_sf()+
  labs(title="Jiangsu",x="Lon",y="Lat") 

当然,这张地图只看到整块,看不到内部的市的构成需要对X数据进行处理,我们Print(X)可以看到里面的数据了。有FillColor就是省内的市级地图。我们稍微处理一下。

image.png

把没有FillColor的去除,然后再添加定值的FillColor颜色


## 只要江苏省内
X1=X %>% filter(!FillColor=="") %>% 
  filter(!NAME=="")

# plot
p2=ggplot(X1)+
  geom_sf(fill=FillColor)+
  labs(title="Jiangsu",x="Lon",y="Lat") 

## 指定颜色
p3=ggplot()+
  geom_sf(data = X1, aes(fill = NAME),lwd = 0) + #polygons filled based on the density value
  scale_fill_manual(values = X1$FillColor)+
  theme(text=element_text(size=10,family="STHeitiSC-Light"))+ # show 中文
  labs(title="Jiangsu",x="Lon",y="Lat") 

library(patchwork)
(p1+p2)

p3
image.png

数据源2-阿里云

这里比上述的数据源获取更简单,因为阿里云DATAV GeoAtlas的数据,直接给出连接,我们只需要点击数据,然后复制到R里面即可。

image.png

library(sf)
CHN = read_sf("https://geo.datav.aliyun.com/areas_v3/bound/100000_full.json")

ggplot(CHN)+
  geom_sf(fill=NA)+
  labs(title="Aliyun DATAV GeoAtlas",x="Lon",y="Lat") 

省级或市级数据

省级或市级数据也更简单,就只要点击你想要的地区,进去后复制 JSON API,譬如江苏省 https://geo.datav.aliyun.com/areas_v3/bound/320000_full.json,这里面不需要对获取是子数据进行提取。比较方便。

# 江苏
df_map1=read_sf("https://geo.datav.aliyun.com/areas_v3/bound/320000_full.json")

ggplot()+
  geom_sf(data=df_map1,fill=NA)

image.png

数据保存

当然我们获取的是Json数据格式,也可转换成我们需要的Shpfile文件。 sf to Shp

当然可以转成其他格式,这里就不再介绍,可以自行Google 。

st_write(df_map1, "Jiangsu.shp")

总结

当然,这只是获取正确的中国地图,阿里云的数据源是比较方便的,但是阿里云的地铁数据没有审图号,我们还是用正规的民政部网站提供的数据吧。

另外地图文件获取后,只是基础,为我们的可视化提供便利。还需要进一步对地图进行数据的展示,未完待续。。。

上一篇下一篇

猜你喜欢

热点阅读