谷歌地图获取坐标
- 谷歌地图:https://www.google.com/maps
- 左上角搜索地名
- 右击红点复制坐标(可能并不精确)
- 整理到excel中
数据框转矢量
- R读取数据
library(readxl)
data <- read_excel("E:\\figure/mapdata.xlsx",sheet=1)
- 将数据转换成矢量
library(sf)
scatter_df_tro <- st_as_sf(data,coords = c("longitude", "latitude"),crs = 4326)
- 可能遇到的问题:NAs Introduced by Coercion
- 原因: 将数据识别成文本了
- 检查方法:查看数据列格式sapply(data,mode)
sapply(data,mode)
num=list(data['latitude'])
num=unlist(num)
sapply(data,mode)
- 返回到第一步转成矢量,成功!
给世界地图加上整理好的坐标点
library(tmap)
library(spData)#加载世界地图
tm_shape(world) + tm_borders() +
tm_shape(scatter_df_tro) +
tm_symbols(col = "black", shape = 19)
总代码
library(readxl)
library(tmap)
library(sf)
library(spData)
data <- read_excel("E:\\figure/mapdata.xlsx",sheet=2)
scatter_df_tro <- st_as_sf(data,coords = c("longitude", "latitude"),crs = 4326)
tm_shape(world) + tm_borders() +
tm_shape(scatter_df_tro) +
tm_symbols(col = "black", shape = 19)