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

address_list数据:

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

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

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

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

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

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

北京

北京市通州区

北京市的的的的的

天津市武清区

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、根据地名,生成其经纬度

#############使用百度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、获取输入名字的百度地图展现

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. css3 loading动画 三个省略号

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  2. ios 关于时间戳与时间转化的笔记

    linux系统获取时间戳的方法:time() ; 时间戳转换成需要的时间格式: NSDateFormatter *formatter=[[NSDateFormatter alloc]init]; [f ...

  3. 浅谈echo、print、var_dump()、print_r()的区别

    1.echo 和 print 的区别 共同点:首先echo 和 print 都不是严格意义上的函数,他们都是语言结构;他们都只能输出 字符串,整型跟int型浮点型数据.不能打印复合型和资源型数据: 而 ...

  4. php生成器使用总结

    一般我们在迭代一组数据的时候,需要创建一个数据,如果数组很大,则会消耗很大性能,甚至造成内存不足抛出error比如: //Fatal error: Allowed memory size of 134 ...

  5. Unity 相机的聚焦功能

    摘要:本文原创,转载请注明出处 需求: 在游戏的任务编辑场景进行编辑的时候,摄像机需要在多个需要编辑的物体之间来回切换,如果只是用摄像机的移动旋转,对于相对位置较近的物体还好说,当相对位置过远的时候, ...

  6. _getch() 函数,应用于输入密码敲入回车前修改

    body,table { font-family: 微软雅黑; font-size: 10pt } table { border-collapse: collapse; border: solid g ...

  7. MongoDB基础教程系列--第九篇 MongoDB 分片

    1.分片介绍 分片(sharding)是将数据拆分,将其分散存到不同机器上的过程.MongoDB 支持自动分片,可以使数据库架构对应用程序不可见.对于应用程序来说,好像始终在使用一个单机的 Mongo ...

  8. JavaScript中的数据结构及实战系列(2):栈

    开题: 不冒任何险,什么都不做,什么也不会有,什么也不是. 本文目录 栈介绍: JavaScript实现栈: 栈的应用: 栈介绍: 和队列一样,栈也是一种表结构,但是和队列的"先进先出&qu ...

  9. vim 字符串替换整理

    公司项目测试,要在vi编辑其中进行多路径修改,这时候用到了字符串替换的知识,在这里我自己整理了一下. 一.基本内容替换,无特殊符号 :s/old/new/  替换当前行第一个 old 为 new   ...

  10. 又拍云SSL证书全新上线,提供一站式HTTPS安全解决方案

    互联网快速发展,云服务早已融入每一个人的日常生活,而互联网安全与互联网的发展息息相关,这其中涉及到信息的保密性.完整性.可用性.真实性和可控性.又拍云上线了与多家国际顶级 CA 机构合作的数款OV & ...