R语言调用第三方地图数据库

1.为什么使用地图作为背景:

地域空间数据可视化
    当指标数据和要表达的主题跟地域有关联时,一般会选择用地图为大背景。
    这样用户可以直观的了解整体的数据情况,
    同时也可以根据地理位置快速的定位到某一地区来查看详细数据。
    例如:在地图上标出特定位置的数据表现或者一些数值

2.地图数据

    第一种思路:有一些R包中存储着常见地图的数据
    第二种思路:下载所画图的地理数据,然后读入R进行绘制
    第三种思路:直接去调取专业的地图企业或者网站的数据

3.第三方地图数据说明

各家地图服务商使用的坐标并不相同。目前主要有如下三种坐标系:
    大地坐标(WGS84坐标系):国际上通用的坐标系。设备一般包含GPS芯片或者北斗芯片获取的经纬度为WGS84地理坐标系, 
                                                    谷歌地图采用的是WGS84地理坐标系(中国范围除外)。
    火星坐标(GCJ02坐标系):是由中国国家测绘局制订的地理信息系统的坐标系统。由WGS84坐标系经加密后的坐标系。
                                                        高德地图、谷歌中国地图和搜搜中国地图采用的是GCJ02地理坐标系。
    百度坐标(BD09坐标系):GCJ02坐标系经加密后的坐标系。 
    一般从GPS得到的数据是经纬度,百度地图定位偏差-百度地图开发时,输入经纬度 (用google earth或GPS设备得到) ,会发现坐标显示位置偏移
    坐标偏移--国家要求 + 百度的二次加密
    主流互联网地图服务商都对外发布了接口,供第三方使用。
    导航电子地图资质和互联网地图服务资质
    百度、腾讯、搜狗、图吧等属于互联网地图服务提供商,所使用地图数据均购买于数据提供商
    互联网地图服务甲级测绘资质单位
    地图数据公司一方面要有政府背景,同时需要大量成本定期采集、更新全国地图数据

4.R语言调用第三方地图数据

调用第三方的地图数据--然后再地图上表现数据--
    %>%   管道函数--上一步产生的对象管道输出为下一步调用的函数的第一个参数--链式命令--magrittr包
                        嵌套版本的代码
                        链式版本的代码-- dplyr 包已极大地发挥了管道操作的优势
01.ggmap包底层地图中可以调取Google Map的数据,
                        还可以调取OpenStreetMap (‘osm’)、
                                            Stamen Maps (‘stamen’)和
                                            CloudMade maps (‘cloudmade’)--需要Api Key
                        地图类型有
                            有’terrain’(地势图)、
                               ’satellite’(卫星图)、
                               ’roadmap’(道路图)
                               和 ‘hybrid’(混合)
        说明---这个需要科学上网--即你懂得,然后每天的调用Google Map是有次数限制的,同时地图涉及政治问题请谨慎使用

        geocode 获取地点的经纬度,基于Google Maps
        get_map:获取地图数据函数,输入可以是位置名称或者经纬度--获取的地图是非矢量图
        ggmap:主要换图函数
    ##安装包-如果没有安装,则需要将注释去掉,然后再运行
    #install.packages('ggmap')
    #install.packages('mapproj')
    ##加载包
    library(ggmap)
    library(mapproj)
    map <- get_map(location = 'China', zoom = 4)
    ggmap(map)
    ##南京道路图
    map2 <- get_map(location = 'Nanjing', zoom = 10, maptype = 'roadmap')
    ggmap(map2)

02.调用百度的API
        需要注册API密钥

03.搜狗地图API
        http://map.sogou.com/api/
                 搜狗地图API是一套由JavaScript语言编写的应用程序接口
                                一定的JavaScript编程经验,
                                了解面向对象的设计和开发概念。 
                                具备电子地图相关的一些基本知识
04.雅虎的PlaceFinder是一个提供地理编码的Web服务,它可以帮助应用程序实现地理位置感知功能,
                            并且转换成街道地址,或者把地理位置信息转换成地理坐标(反之亦然)
                            https://developer.yahoo.com/geo/placefinder/

参考:

    R时代,你要怎样画地图?https://cos.name/2013/01/drawing-map-in-r-era/

blogroll

social