在传单地图中渲染没有投影的 shapefile

Render shapefile with no projection in leaflet map

我想在传单地图中渲染一个 shapefile。

This shapefile 没有投影所以我想给它一个。

  directions <- readOGR("./directions/", "directions")
  proj4string(directions) <- CRS("+proj=longlat +datum=WGS84 +no_defs")

然后我尝试像这样将它添加到我的地图中:

  map <- leaflet() %>% 
    addProviderTiles("CartoDB.Positron") %>% 

    addPolygons(data=directions,weight=1,col = 'black') %>% 

    setView(lng = -3.8196207,
            lat = 40.4678698,
            zoom = 10)

问题是我收到一条错误消息:

Geographical CRS given to non-conformant data: 450781.167295 4485221.863980

我尝试使用其他投影作为 CRS,例如

  proj4string(directions) <- CRS("+proj=utm +zone=30 +ellps=GRS80 +units=m +no_defs")

这不会给我一个错误,但 shapefile 也不会被渲染。

我真的不明白为什么会发生这种情况以及如何解决它。

顺便说一句:我从西班牙语 website 那里获得了这个 shapefile,那里发布了交通和空气质量数据

你们非常亲密。您需要做的是将 UTM Zone 17N 的投影转换为经纬度投影。

library(sp)
library(rgdal)
library(leaflet)

# Read the shapefile
directions <- readOGR("directions", "directions")
# Set the projection to be UTM zone 30N
proj4string(directions) <- CRS("+proj=utm +zone=30 +ellps=GRS80 +units=m +no_defs")
# Conduct project transformation from UTM zone 30N to long-lat
directions_longlat <- spTransform(directions, CRS("+proj=longlat +datum=WGS84 +no_defs"))

map <- leaflet() %>% 
  addProviderTiles("CartoDB.Positron") %>% 
  addPolygons(data = directions_longlat, weight=1, col = 'black') %>% 
  setView(lng = -3.8196207,
          lat = 40.4678698,
          zoom = 10)
map