|||
将有经纬度的取样点在google地图标出
数量生态学-R语言应用第二版第二章有代码将带经纬度取样的主动投射到google地图
大家可能会经常用到,特意提前先贴这里,使用下面代码前提你的电脑必须能上google
Doubs鱼类数据取样点经纬度信息在Doubs.RData的文件里面,下载后直接运行下面代码即可
#如果网页有问题,代码可以从这里下载
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调整。
#如果标签位置发生偏离,可以通过纬度加减一小部分来调整
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-27 10:17
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社