本实例要实现目标通过输入城市名或者地名,然后找出其经度纬度值,以及通过可视化展现其线路流向以及周边地图展示

address_list数据:

山西省太原市小店区亲贤北街77号

贵州省贵阳市云岩区书香门第B栋3单元

北京市通州区神树商业街168号

贵州省贵阳市南明区兴关路51

北京市东城区长巷二条乙5号

山西省太原市杏花岭区北肖墙12号

北京

北京市通州区

北京市的的的的的

天津市武清区

1、生成可视化地图

  1. library(devtools)
    #install_github('lchiffon/REmap')
    library(REmap)
    city_vec = c("北京","Shanghai","广州")
    get_city_coord("Shanghai")
    get_geo_position (city_vec)
    set.seed(125)
    origin = rep("杭州",5)
    destination = c('台州','丽水','金华','温州','乡宁')
    dat = data.frame(origin,destination)
    out = remap(dat,title = "REmap实例数据",subtitle = "theme:Dark")
    plot(out)
    mapNames("杭州")

结果:

2、根据地名,生成其经纬度

  1. #############使用百度API######################
    ############地理位置→经纬度###################
    ##############################################
    library(REmap)
    #library(RCurl)
    #library(rjson)
    #get_city_coord('杭州')
    #导入地址列表
    address <- read.table('address_list.txt',header = F, col.names=c('address'),as.is = c(1))
    address <- address$address   #转化为向量格式,备for循环使用
    head(address)
    #建立备用向量,包括空向量及百度地图api秘钥
    baidu_lng <- c()
    baidu_lat <- c()
    ak <- 'V5dWHCeG7jdMhcElzW自己的APIAK'     #百度地图api的秘钥,需自己申请
    #加载包
    library(rjson)
    library(RCurl)
    location <-address[1]
    #循环解析过程
    for (location in address) {
      #生成规则的url地址(具体参数可参考Geocoding API文档)
      url <- paste('http://api.map.baidu.com/geocoder/v2/?ak=',ak,'&callback=renderOption&output=json&address=',location,sep='')
      #利用URLencode()转换为可解析的URL地址
      url_string <- URLencode(url)
      #通过readLines读取URL地址,并解析JSON格式的结果
      json<- readLines(url_string, warn=F)
      geo <- fromJSON(substr(json,regexpr('\\(',json)+1,nchar(json)-1))
      #在解析结果中提取经纬度
      lng<-geo$result$location$lng
      lat<-geo$result$location$lat
      #存储到已经建好的字段中
      baidu_lng <- c(baidu_lng,lng)
      baidu_lat <- c(baidu_lat,lat)
    }
    #整理结果
    result <- data.frame(address=address,longitude=baidu_lng,latitude=baidu_lat)
    result

结果(对应address_list文件位置经纬度):

3、获取输入名字的百度地图展现

  1. library(devtools)
    #install_github('badbye/baidumap')
    #install_github('lchiffon/REmap')
    library(baidumap)
    library(ggmap)
    ## Loading required package: ggplot2
    #获取浙江中医药大学的地图信息
    ####http://www.gpsspg.com/maps.htm
    q <- getBaiduMap(c(120.2230040000,30.2154520000), width=600, height=600, zoom=18, scale = 2, messaging=FALSE)
    ggmap(q) #绘制地图
    q <- getBaiduMap('浙江中医药大学', width=600, height=600, zoom=18, scale = 2, messaging=FALSE)
    ggmap(q) #绘制地图

结果:

华青莲日常点滴,方便自己,成长他人!!!

转自:http://mp.weixin.qq.com/s?__biz=MzA3MTM3NTA5Ng==&mid=2651055492&idx=1&sn=ebeb2da28f17d4efbfc65dcb8595cc1d&chksm=84d9c413b3ae4d05c961bf19efb987cfd99a03f6f838cbc24b76e34ea06100684023a40a3e4a&scene=0#rd

R实现地理位置与经纬度相互转换的更多相关文章

  1. .NET Core 开源工具 IPTools - 快速查询 IP 地理位置、经纬度信息

    快速查询IP信息,支持国内和国外IP信息查询,支持查询经纬度,地理位置最高支持到城市. 1. IPTools.China 快速查询中国IP地址信息,包含国家.省份.城市.和网络运营商.非中国IP只支持 ...

  2. baidu地图api , 地理位置转 经纬度接口

    更多可以查看    http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding 地理编码示例: 以下是关于地理编 ...

  3. windows10 uwp获取设备当前地理位置(经纬度)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  4. php,微信公众号,获取用户地理位置 定位 经纬度

    <?php //php插件下载地址: https://files.cnblogs.com/files/fan-bk/jssdk_php.rar //建立一个php文件 require_once ...

  5. 用户Ip地址和百度地图api接口获取用户地理位置(经纬度坐标,城市)

    <?php   //获取用户ip(外网ip 服务器上可以获取用户外网Ip 本机ip地址只能获取127.0.0.1) function getip(){     if(!empty($_SERVE ...

  6. 转载: utm坐标和经纬度相互转换

    原文地址: https://blog.csdn.net/hanshuobest/article/details/77752279 //经纬度转utm坐标 int convert_lonlat_utm( ...

  7. R语言中文社区历史文章整理(类型篇)

    R语言中文社区历史文章整理(类型篇)   R包: R语言交互式绘制杭州市地图:leafletCN包简介 clickpaste包介绍 igraph包快速上手 jiebaR,从入门到喜欢 Catterpl ...

  8. 经纬度编码方法推荐-plus code简介

    今天罗孚为大家推荐一种经纬度编码的方法--plus code,原名open location code,是Google于2014年发明的,旨在将表示地理位置的经纬度通过算法推导成一个字符串. plus ...

  9. C#开发微信门户及应用(13)-使用地理位置扩展相关应用

    本文继续上一篇<C#开发微信门户及应用(12)-使用语音处理>,继续介绍微信的相关应用.我们知道,地理位置信息可以用来做很多相关的应用,除了我们可以知道用户所在的位置,还可以关联出一些地理 ...

随机推荐

  1. Android常用adb命令

    1.进入手机命令行模式 adb shell 有多部手机的话 adb -s + 手机编号 + shell 2.安装apk adb install 然后将apk文件拖进命令行 卸载apk adb unin ...

  2. java基础之类与对象2

    这是上一篇文章的源码................ public class Main 是我创建的一个主类 我的基本操作就在这个类里面完成,public static void main(Strin ...

  3. git教程(简单的带你学好git)

    刚开始使用的时候没有找到好的资源学习,下面这个资源不错,大家可以参考学习. http://www.liaoxuefeng.com/wiki/0013739516305929606dd183612485 ...

  4. 浅谈css中单位px和em,rem的区别-转载

    px是你屏幕设备物理上能显示出的最小的一个点,这个点不是固定宽度的,不同设备上点的长宽.比例有可能会不同.假设:你现在用的显示器上1px宽=1毫米,但我用的显示器1px宽=两毫米,那么你定义一个div ...

  5. 微信jssdk分享链接给好友,图标只能自己看到,对方看不到!

    问题描述:调用微信jssdk分享接口时,所有参数均正常的情况下(排除参数错误的情况),分享给好友后,其中的小图标自己看得到,接收到分享的好友看不到小图标! (如上图所示!) 出现上述问题的原因:本人猜 ...

  6. WebGIS中使用ZRender实现前端动态播放轨迹特效的方案

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 项目中需要在地图上以时间轴方式播放人员.车辆在地图上的历史行进 ...

  7. FPGA中将十进制数在数码管中显示(verilog版)--二进制转换为BCD码

    这周有朋友问怎样在fpga中用数码管来显示一个十进制数,比如1000.每个数码管上显示一位十进制数.如果用高级语言来分离各位,只需要分别对该数做1000,100,10对应的取商和取余即可分离出千百十个 ...

  8. JS事件处理程序

    JS事件处理程序:HTML事件处理程序.DOM0级事件处理程序.DOM2级事件处理程序.IE事件处理程序.跨浏览器的事件处理程序. HTML事件处理程序 <script type="t ...

  9. Spring整合Quartz定时任务执行2次,Spring定时任务执行2次

    Spring整合Quartz定时任务执行2次,Spring定时任务执行2次 >>>>>>>>>>>>>>>&g ...

  10. [ext4]05 磁盘布局 - 延迟块组初始化

    延迟块组初始化,Ext4的新特性.如果对应的特性标识uninit_bg置位,那么inode bitmap和inode tables就不会初始化. 延迟块组初始化特性特性可以减少格式化耗时. 延迟块组初 ...