SpatialPolygons - Создание набора полигонов в R из координат
Я пытаюсь создать набор полигонов из местоположений вершин, сохраненных в формате X, Y.
Вот пример моих данных - каждая строка представляет вершины для одного многоугольника. полигоны - это квадраты
square <- rbind(c(255842.4, 4111578, 255862.4, 4111578, 255862.4, 4111558,
255842.4, 4111558, 255842.4, 4111578, 255842.4, 4111578),
c(257397.0, 4111309, 257417.0, 4111309, 257417.0, 4111289,
257397.0, 4111289, 257397.0, 4111309, 257397.0, 4111309))
ID <- c("SJER1", "SJER2")'
я используюSpatialPolygons
Таким образом, мои данные должны быть в списке. поэтому я создал цикл, чтобы попытаться получить мои данные в виде списка из матрицы.
Я создаю цикл, следующий за кодом, который я нашел в некоторых других вопросах на этом сайте. Я разбил каждый шаг, чтобы попытаться понять, почему я получаю только один многоугольник, даже если у меня есть 2 набора точек.
for (i in 1:2) {
pts <- rbind(c(square[i,1], square[i,2]), c(square[i,3], square[i,4]),
c(square[i,5],square[i,6]), c(square[i,7],square[i,8]),
c(square[i,9],square[i,10]))
sp1 <- list(Polygon(pts))
sp2 <- list(Polygons(sp1,i))
sp = SpatialPolygons(sp2)
}
plot(sp)
Не могли бы вы помочь мне понять, как я настраиваю код для записи двух полигонов вместо одного? А также, как назначить идентификатор каждому многоугольнику, учитывая, что я использую матрицу (квадрат) в качестве исходного набора данных, и если я назначаю идентификатор символа, он преобразует все мои данные в символ.
Моя конечная цель - два полигона вSpatialPolygons
первый объект с идентификаторомSJER1
а второй с удостоверением личностиSJER2
хранится вSpatialPolygons
объект.
Тогда я запишу это в шейп-файл.