在R中创建一个Map并放入一些坐标

jdzmm42g  于 2023-04-27  发布在  其他
关注(0)|答案(1)|浏览(123)

我有一个数据集,其中有三个与坐标相关的变量:UTMX、UTMY和HUSO。
我想创建一个Map,其中所有的点都显示。
下面是dataframe的一个例子:

x       y       huso
1   474731  4539196 30  
2   518127  4539351 30  
3   488067  4521530 30  
4   459943  4528829 30  
5   497732  4539816 30  
6   502623  4531443 30

我试着绘制坐标:

coordenadas_UTM <- SpatialPointsDataFrame(coords=coordenadas,
                                         data=coordenadas,
                                         proj4string = CRS("+proj=utm +zone=30 +north +ellps=WGS84 +units=m +no_defs"))

m <- leaflet(coordenadas) %>%  setView(lat  = 40.416775, lng = -3.703790, zoom = 5) %>% 
   addProviderTiles(providers$CartoDB.Positron)

m %>% addMarkers(lng=coordenadas_UTM@data$x, lat=coordenadas_UTM@data$y )

我有两件事,我认为他们是不确定的.转换从UTM到lat/lng...我尝试了一些软件包,但我没有得到它的工作,我不能从谷歌或OpenStreetMaps下载任何Map.
有没有人用任何带有UMT坐标的软件包(ggmap,ggplot,leaflet...)来构建Map?
先谢谢你。

bn31dyow

bn31dyow1#

您需要找出数据所在CRS的EPSG代码,然后将其转换为EPSG代码为4326的WGS84。您可以使用sf包:

library(sf)
library(dplyr)
library(leaflet)

data <- data.frame(id= c(1,2,3,4,5,6), x= c(474731,518127,488067,459943,497732,502623), 
                                       y=c(4539196,4539351,4521530,4528829,4539816,4531443)) %>%
  st_as_sf(coords=c("x", "y"), crs=32630) %>%
  st_transform(4326) 
  
data %>%
  leaflet() %>%
  addTiles() %>%
  addMarkers()

相关问题