在传单地图中渲染没有投影的 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
我想在传单地图中渲染一个 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