前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R 获取中国标准官方地图(含官方网站)

R 获取中国标准官方地图(含官方网站)

作者头像
Jamesjin63
发布2022-10-25 14:42:12
2.5K0
发布2022-10-25 14:42:12
举报
文章被收录于专栏:EpiHubEpiHub

介绍

今天,给大家介绍一下,如何利用R语言获取中国地图。有一点大家清楚,网络上很多教程关于R绘制中国地图。 但是中国地图的绘制涉及到国家主权,及以前旧版本地图,西藏领地不全,没有台湾,也没有南海九段线。中国地图最常见的问题有四个:

  • 1 中国台湾部分的缺失;
  • 2 南海与九段线的缺失;
  • 3 西藏交界的中印边界划分有误;
  • 4 新疆与西藏交界的中印边界划分有误;

这里介绍的是标准的中国地图,标准地图依据中国和世界各国国界线画法标准编制而成,可用于新闻宣传用图、书刊报纸插图、广告展示背景图、工艺品设计底图等,也可作为编制公开版地图的参考底图。是需要被官方认证的。以下链接是官方地图来源标准地图国家地理信息公共服务平台天地图

image.png

各位在以后的发表及展示时候,是有强有力的官方来源基础支持。 因为来源的渠道有很多种,这里主要介绍三种方法

获取方式1

这里的数据源是引用微信公众号R-sf包: 中国民政部官网官网中国地图, 中国民政部官网提供了省级与县级两种类型的地图,其审图号为:GS(2018)2512. 我们直接上代码:

代码语言:javascript
复制
library(geojsonsf)
library(sf)
library(ggplot2)
######################################
# source1 民政部
# link: https://mp.weixin.qq.com/s/qj1SRc6D8sgYJYaZzDux6Q
######################################
##  API前缀
API_pre = "http://xzqh.mca.gov.cn/data/"
## 1.全国
China = st_read(dsn = paste0(API_pre, "quanguo.json"), 
                    stringsAsFactors=FALSE) 
st_crs(China) = 4326

# plot
ggplot(China)+
  geom_sf()+
   labs(title="Ministry of Civil of PRC",x="Lon",y="Lat") 
  
## 2.全国县
xian_quanguo = st_read(dsn = paste0(API_pre, "xian_quanguo.json"), 
                           stringsAsFactors=FALSE) 
st_crs(xian_quanguo) = 4326

# save
geo_map = sf_geojson(xian_quanguo,atomise = T)
write(geo_map,"China_xian_MZB.json")

image.png

  • API前缀都是 http://xzqh.mca.gov.cn/data/,
  • 获取全国级地图,则加后缀quanguo.json;
  • 获取全国级地图,则加后缀xian_quanguo.json;
  • 获取部分地区,如某个市的县级地图,则加该行政区域代码,再加.json;
  • 如果要获取市级地图,需要按遍历行政区域代码获取所有市的地图,然后合并县级区域;
  • 全国主要山脉,南海九段线数据,则加后缀quanguo_Line.geojson;

注:县级地图数据不包括香港和澳门特别行政区,市级地图数据不包括台湾省。

获取方式2

数据来源2是基于地图服务公司简数科技, 里面包含了数据如何下载,这里的下载简数科技包含九段线的中国省级地图 China.json 点进去以后,这是json文件,里面的内容复制到txt,保存好,改名为Chinamapdata.json。 ,当然根据提示,也可下载各个省的地图文件。 注意:这里复制时候?({"title":前面的?(与最后的)都要去除。

image.png

代码语言:javascript
复制
######################################
#source2 简数数据
# http://data.jianshukeji.com/
# remove the ?() in Json file
######################################

China_map = read_sf("ChinaJson/Chinamapdata.json")

ggplot(China_map)+
  geom_sf() +
  labs(title="Jianshu-CRS:3415",x="Lon",y="Lat") ->p1

# 转至CRS 4326
China_map1 = st_transform(China_map,crs = 4326)

ggplot(China_map1)+
  geom_sf() +
  labs(title="Jianshu-CRS:4326",x="Lon",y="Lat") ->p2

geo_map = sf_geojson(China_map1,factors_as_string = FALSE )
write(geo_map,"China_Jianshu.json")

image.png

获取方式3

该数据源是蚂蚁金服 AntV 数据可视化团队推出的基于 WebGL 的开源大规模地理空间数据可视分析的关于环境污染的数据源 L7 地理空间数据可视分析引擎 支持Python开发及可视化。

我们主要是加载其中 中国地图的数据源。面包含的城市有限,目前正在进一步研究中

代码语言:javascript
复制
######################################
#source3 Alipay
######################################
China_map_Ali=read_sf("https://gw.alipayobjects.com/os/rmsportal/JToMOWvicvJOISZFCkEI.json")
China_map_Ali
ggplot(China_map_Ali) +
  geom_sf() +
  labs(title="Ali-CRS:4326",x="Lon",y="Lat") 

image.png

这期主要介绍三种关于中国地图的获取渠道, 当然也有一些R的包,自带中国地图,如果有感兴趣的小伙伴,可以自行探索。 下一期,主要介绍各个包包括中国地图及绘制方法。

当然这里浓重介绍以下,R地图绘制的学习网站,博主是绘制的大佬,他也提供标准地图的数据源。---> RStata 学院

以及关于世界各个国家地图的下载集合HIGHMAPS,当然中国不标准没有台湾。

参考:

  1. https://tidyfriday.cn/ 2.https://mp.weixin.qq.com/s/qj1SRc6D8sgYJYaZzDux6Q 3.https://code.highcharts.com/mapdata/
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-06-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 获取方式1
  • 获取方式2
  • 获取方式3
    • 参考:
    相关产品与服务
    图数据库 KonisGraph
    图数据库 KonisGraph(TencentDB for KonisGraph)是一种云端图数据库服务,基于腾讯在海量图数据上的实践经验,提供一站式海量图数据存储、管理、实时查询、计算、可视化分析能力;KonisGraph 支持属性图模型和 TinkerPop Gremlin 查询语言,能够帮助用户快速完成对图数据的建模、查询和可视化分析。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档