R实现地理位置与经纬度相互转换
本实例要实现目标通过输入城市名或者地名,然后找出其经度纬度值,以及通过可视化展现其线路流向以及周边地图展示
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实现地理位置与经纬度相互转换的更多相关文章
- .NET Core 开源工具 IPTools - 快速查询 IP 地理位置、经纬度信息
快速查询IP信息,支持国内和国外IP信息查询,支持查询经纬度,地理位置最高支持到城市. 1. IPTools.China 快速查询中国IP地址信息,包含国家.省份.城市.和网络运营商.非中国IP只支持 ...
- baidu地图api , 地理位置转 经纬度接口
更多可以查看 http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding 地理编码示例: 以下是关于地理编 ...
- windows10 uwp获取设备当前地理位置(经纬度)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- php,微信公众号,获取用户地理位置 定位 经纬度
<?php //php插件下载地址: https://files.cnblogs.com/files/fan-bk/jssdk_php.rar //建立一个php文件 require_once ...
- 用户Ip地址和百度地图api接口获取用户地理位置(经纬度坐标,城市)
<?php //获取用户ip(外网ip 服务器上可以获取用户外网Ip 本机ip地址只能获取127.0.0.1) function getip(){ if(!empty($_SERVE ...
- 转载: utm坐标和经纬度相互转换
原文地址: https://blog.csdn.net/hanshuobest/article/details/77752279 //经纬度转utm坐标 int convert_lonlat_utm( ...
- R语言中文社区历史文章整理(类型篇)
R语言中文社区历史文章整理(类型篇) R包: R语言交互式绘制杭州市地图:leafletCN包简介 clickpaste包介绍 igraph包快速上手 jiebaR,从入门到喜欢 Catterpl ...
- 经纬度编码方法推荐-plus code简介
今天罗孚为大家推荐一种经纬度编码的方法--plus code,原名open location code,是Google于2014年发明的,旨在将表示地理位置的经纬度通过算法推导成一个字符串. plus ...
- C#开发微信门户及应用(13)-使用地理位置扩展相关应用
本文继续上一篇<C#开发微信门户及应用(12)-使用语音处理>,继续介绍微信的相关应用.我们知道,地理位置信息可以用来做很多相关的应用,除了我们可以知道用户所在的位置,还可以关联出一些地理 ...
随机推荐
- c# 逆波兰式实现计算器
语文不好,不太会组织语言,希望不要太在意. 如题,先简要介绍一下什么是逆波兰式 通常我们在写数学公式的时候 就是a+b+c这样,这种表达式称为中缀表达式,逆波兰式又称为后缀表达式,例如a+b 后缀 ...
- ValueStack
1.把list集合压入栈顶 /** * * 查找所有的用户 * @return */ public String findAll() { List<User> allUser = user ...
- MTK elian(smartlink)在WIN32下的实现
先说明一下调试技巧:该程序需无线网卡实现功能,由于PC端有可能是多网卡的(有线网卡.无线网卡.虚拟网卡),所以在发包的时候数据包不一定会从无线网卡出,lib库应该也没处理多网卡的选择吧.所以在调试的时 ...
- 串口屏Modbus协议,串口屏的modbus协议资料,串口屏modbus通讯协议开发,串口屏之modbus协议使用技巧
串口屏Modbus协议,串口屏的modbus协议资料,串口屏modbus通讯协议开发,串口屏之modbus协议使用技巧 本例程中用51单片机作为Modbus从机,从机的设备地址为2,从机有4个寄存器, ...
- 海康/大华 IpCamera RTSP地址和格式
海康:rtsp://[username]:[password]@[ip]:[port]/[codec]/[channel]/[subtype]/av_stream说明:username: 用户名.例如 ...
- 【从无到有】JavaScript新手教程——2.分支结构和循环
介绍完JS的简介和向量以及运算符,大家对JS也有了初步的了解和认识,今天带大家来看一下JS中常用的分支结构以及循环结构是怎么使用的 [JS中的分支结构] 一.[if-else结构] 1.结构写法: i ...
- 读书笔记 effective c++ Item 55 让你自己熟悉Boost
你正在寻找一个高质量的,开源的,与平台和编译器无关的程序库的集合?看一下Boost吧.想加入一个由雄心勃勃的,充满天赋的正致力于最高水平的程序库设计和实现工作的C++程序员们组成的团体么?看一下Boo ...
- RHive
R + Hive = RHive 支持原创:http://blog.fens.me/nosql-r-hive/ R利剑NoSQL系列文章 之 Hive Hive介绍 Hive安装 RHive安装 RH ...
- [效率]Source insight标题栏中路径显示完整路径的方法
使用Source insight的时候,默认是不显示文件的全路径的,这一点有那么一段时间让我很纠结,因为很多函数都是基于硬件架构的,一个函数有很多时间.查看文件的全路径是非常有必要,可以通过以下实现: ...
- Windows7下安装IIS
1.点击开始→控制面板,然后再点击程序,勿点击卸载程序,否则到不了目标系统界面. 2.然后在程序和功能下面,点击打开和关闭windows功能. 3.进入Windows功能窗口,然后看到internet ...