赖江山的博客分享 http://blog.sciencenet.cn/u/laijiangshan 生态、统计与R语言

博文

在R里面将有经纬度的取样点在google地图标出

已有 13718 次阅读 2018-9-2 22:56 |个人分类:RDA|系统分类:科研笔记| 经纬度样点, google地图, google地图, google地图, google地图, google地图

将有经纬度的取样点在google地图标出

数量生态学-R语言应用第二版第二章有代码将带经纬度取样的主动投射到google地图

大家可能会经常用到,特意提前先贴这里,使用下面代码前提你的电脑必须能上google

Doubs鱼类数据取样点经纬度信息在Doubs.RData的文件里面,下载后直接运行下面代码即可

Doubs.RData

#如果网页有问题,代码可以从这里下载

google地图标出.txt

install.packages(c("vegan","RgoogleMaps","googleVis","labdsv"))

library(vegan)

library(RgoogleMaps)

library(googleVis)

library(labdsv)

#Doubs鱼类数据取样点经纬度信息

latlong

# 将样方点映射到谷歌地图

# 使用googleVis - 动态地图

# 以googleVis程序包默认的方法组织数据

# 从浏览器中生成出图

nom <- latlong$Site

latlong2 <- paste(latlong$LatitudeN,latlong$LongitudeE, sep = ":")

df <- data.frame(latlong2, nom, stringsAsFactors = FALSE)


mymap1 <- gvisMap(df, 

  locationvar = "latlong2", 

  tipvar = "nom", 

  options = list(showTip = TRUE)

)


plot(mymap1)


#下面的方法是从R看静态的图像。背景地图是从根据经纬度范围从网上获取

#有好几种类型地图供选择,我们这里选择“terrain”类型

MapBackground(lat = latlong$LatitudeN, 

  lon = latlong$LongitudeE, 

  destfile =  "bckg", 

  maptype = "terrain"

)



# 地图被加载到R对象中

doubs.map <- ReadMapTile(destfile = "bckg")


# 加入点的经纬度坐标

PlotOnStaticMap(doubs.map, 

  lat = latlong$LatitudeN, 

  lon = latlong$LongitudeE, 

  cex = 0.7, 

  col = "black", 

  pch = 19

)


# 加上样方号

TextOnStaticMap(doubs.map, 

  latlong$LatitudeN - 0.0008 * abs(latlong$LatitudeN),

  latlong$LongitudeE, 

  labels = latlong$Site, 

  add = TRUE, 

  cex = 0.5

)


#点和标签的大小由参数cex调整。

#如果标签位置发生偏离,可以通过纬度加减一小部分来调整





https://blog.sciencenet.cn/blog-267448-1132417.html

上一篇:计算两个矩阵中不同变量相关系数和p值的函数
下一篇:打开Rstudio时候出错的问题解决
收藏 IP: 159.226.89.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-12-27 10:17

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部