啊啊啊啊啊吖

2018-10-25   阅读量: 823

数据分析师 R语言 数据可视化

用R绘制地图(2)

扫码加入数据分析学习群

ESRI公司的Shapefile文件是描述空间数据的几何和属性特征的矢量数据结构的一种格式。 一个Shapefile文件最少包括三个文件:主文件(.shp):存储地理要素的几何图形的文件; 索引文件(.shx):存储图形要素与属性信息索引的文件; dBASE表文件(*.dbf):存储要素信息属性的dBase表文件。

除此之外还有可选的文件包括:空间参考文件(.prj), 几何体的空间索引文件(.sbn 和 .sbx), 只读的Shapefiles的几何体的空间索引文件(.fbn 和 .fbx), 列表中活动字段的属性索引(.ain 和 .aih), 可读写Shapefile文件的地理编码索引(.ixs), 可读写Shapefile文件的地理编码索引(.mxs), dbf文件的属性索引(.atx), 以XML格式保存元数据(.shp.xml), 用于描述.dbf文件的代码页,指明其使用的字符编码的描述文件(*.cpg)。

需要注意的是,主文件是一个直接存取,变长记录的文件,其中每个记录描述一个实体的数据,我们称之为称为shape。

下面这个网站中可以下载全球各个国家完整的shapefile格式数据: shapefile数据下载网站

备注:慎用中国地图数据!

方法

利用maptools()包中的readShapePoly()载入空间数据文件,用fortify()把数据转化成数据框的格式,然后画图。

1. ibrary(maptools)

1. ibrary(maptools)

复制代码



这里我们只利用了shapefile中最基本的边界信息,还没有对地理信息数据进行更进一步的分析。我们还可以将不同格式的地理数据整合起来,例如如何在上面的地图上绘制出我国的铁路、水系分布等内容。

调用百度地图和谷歌地图的数据

接下来,我将介绍如何从百度地图和谷歌地图中获取心仪的地图数据信息。

百度地图

1. library(devtools)

谷歌地图

首先介绍一个概念:火星坐标系统

火星坐标系统是一种国家保密插件,也叫做加密插件或者加偏或者SM模组,其实就是对真实坐标系统进行人为的加偏处理,按照特殊的算法,将真实的坐标加密成虚假的坐标,而这个加偏并不是线性的加偏,所以各地的偏移情况都会有所不同。而加密后的坐标也常被人称为火星坐标系统。

所有的电子地图、导航设备,都需要加入国家保密插件。第一步,地图公司测绘地图,测绘完成后,送到国家测绘局,将真实坐标的电子地图,加密成“火星坐标”,这样的地图才是可以出版和发布的,然后才可以让GPS公司处理。第二步,所有的GPS公司,只要需要汽车导航的,需要用到导航电子地图的,都需要在软件中加入国家保密算法,将COM口读出来的真实的坐标信号,加密转换成国家要求的保密的坐标。这样,GPS导航仪和导航电子地图就可以完全匹配,GPS也就可以正常工作了。

由于谷歌地图被GFW屏蔽了,所以想调用其API需要翻墙。

主要有以下几个步骤:

安装SSLedge
在RStudio中更改proxy

首先,我们先简单认识下http和https:

http是普通超文本协议,其信息室明文传送,而https就是安全超文本传输协议,需要证书和提供安全连接,https是嵌套了SSL加密的http连接,其内容会由SSL先加密,然后再传送。

为了更方便地使用网络,我将只使用https代理,对于Http类型的网站使用直接连接的方式。

1. # 查看信息

需要注意的是,利用geocode函数检索经纬度数据时,最好选择使用道路数据,这样可以提高检索的准确率。

最后引用肖凯大神博客中的一个案例:本例是从地震信息网获取最近一周的地震数据,得到其经纬度,然后以散点形式绘制在google地图上,同时也显示地震发生的密度估计。

0.0000 0 1 关注作者 收藏

评论(0)


暂无数据

推荐课程

推荐帖子