Я создаю SpatialPolygon
таким образом
#make spatial points
#assign Original CRS WGS84 EPSG:4326 (DATUM --> on sphere)
cornersEPSG4326 <- SpatialPoints(coords=cbind(x,y), proj4string = CRS("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"))
#transform to EPSG3857 (Web Mercator PROJECTION)
cornersEPSG3857 <- spTransform(cornersEPSG4326, CRS("+init=epsg:3857"))
#create Polygon
bbox <- Polygon(cornersEPSG3857)
#create PolygonsObject
myPolygon <- Polygons(list(bbox),1)
#create SpatialPolygonsObject
finalPolygon <- SpatialPolygons(list(myPolygon))
#say that polygon is EPSG3857 (Web Mercator PROJECTION)
proj4string(finalPolygon) <- CRS("+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs")
И SpatialPoints
так:
#make spatial points
#assign Original CRS WGS84 EPSG:4326 (DATUM --> on sphere)
spatialEPSG4326 <- SpatialPoints(coords=cbind(x,y), proj4string = CRS("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"))
#transform to EPSG3857 (Web Mercator PROJECTION)
spatialEPSG3857 <- spTransform(spatialEPSG4326, CRS("+init=epsg:3857"))
allPointsSpatial <- spatialEPSG3857
Я хочу запустить функцию over()
:
pointsInPolygon <- over(allPointsSpatial, finalPolygon)
print(length(pointsInPolygon))
Но я получаю следующее сообщение об ошибке:
Предупреждение: необработанная ошибка в наблюдателе: идентичный CRS (x, y) НЕ ИСТИНА
Когда я добавляю эту строку в свой SpatialPoints
#say that points is EPSG3857 (Web Mercator PROJECTION)
proj4string(spatialEPSG3857) <- CRS("+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs")
Я получаю следующую ошибку:
Предупреждение в _9 _ (_ 10_, value =): новый CRS был назначен объекту с существующим CRS: + init = epsg: 3857 + proj = merc + a = 6378137 + b = 6378137 + lat_ts = 0.0 + lon_0 = 0.0 + x_0 = 0.0 + y_0 = 0 + k = 1.0 + units = m + nadgrids = @ null + no_defs без перепроецирования. Для перепроецирования используйте функцию spTransform в пакете rgdal
- Почему возникает ошибка
CRS are not identical
? Они должны быть одинаковыми, посколькуproj4string
иspTransform
- это один и тот же код ?! - Почему эта ошибка возникает, когда я пытаюсь назначить
proj4string
SpatialPoints, но не когда я делаю это на полигоне?
dput(x)
иdput(y)
к своему вопросу? - person MichaelChirico   schedule 03.09.2015CRS("+init=epsg:4326")
? Я не могу проверить, работает ли это без образцов данных, но, похоже, это должно быть, потому что он указан здесь: пространственная ссылка. org / ref / epsg / 4326 - person MichaelChirico   schedule 03.09.2015CRS("+init=epsg:4326")
вместо какой строки ?! - person Stophface   schedule 03.09.2015cornersEPSG4326
- person MichaelChirico   schedule 03.09.2015proj4string
для этого ?! Проверяя здесь Spacereference.org/ref/epsg/4326, это будет то, что Spacereference.org/ref/epsg/4326/proj4? - person Stophface   schedule 03.09.2015cornersEPSG4326 <- SpatialPoints(coords=cbind(x,y), proj4string = CRS("+init=epsg:4326"))
? - person MichaelChirico   schedule 03.09.2015CRS("+init=epsg:3587")
- person MichaelChirico   schedule 03.09.2015SpatialPoints
вам необходимо определитьproj4string=CRS(as.character(NA))
. Если вы посмотритеproj4string
здесь spacereference.org/ref/epsg/4326, я написал то же самое! Или я совершенно не прав? - person Stophface   schedule 03.09.2015