gSimplify 不简化 R 中的 shapefile
gSimplify not simplifying shapefile in R
我无法在 R 中简化 shapefile
Shapefile 来自这里:https://geoportal.statistics.gov.uk/Docs/Boundaries/Local_authority_district_(GB)_2014_Boundaries_(Generalised_Clipped).zip
library(tmap)
library(maptools)
library(ggmap)
England <- readOGR(dsn = "...")
#works fine
print(qtm(England, "LAD14CD", borders = NA, fill.title = "A-Level" ))
# simplify the polygons
England<-gSimplify(England,tol=0.01, topologyPreserve=TRUE)
print(qtm(England, "LAD14CD", borders = NA, fill.title = "A-Level" ))
给出错误:
Error in process_fill(data, g$tm_fill, gborders, gt, gf, z = z + which(plot.order == :
Fill argument neither colors nor valid variable name(s)
如果您查看 UK 数据对象,您会发现它已从 Large Spatial polygonDataFrame 更改为 Large Spatial Polygons 并删除了 @data
相反,如果您尝试仅简化 Shapefile 中的多边形:
England@polygons<-gSimplify(England@polygons,tol=0.01, topologyPreserve=TRUE)
上面写着:
Error in gSimplify(England@polygons, tol = 0.01, topologyPreserve = TRUE) :
cannot get a slot ("proj4string") from an object of type "list"
如何简化 shapefile 中的多边形?
gSimplify
中的 return 只是几何图形,而不是属性,因此您必须使用简化的几何图形和原始的属性数据构造一个新的 SpatialPolygonsDataFrame
:
> England2 <-gSimplify(England,tol=0.01, topologyPreserve=TRUE)
> England3 = SpatialPolygonsDataFrame(England2, data=England@data)
我认为多边形保证是相同的顺序,除非任何东西都被简化了。检查 length(England2)
具有与 England
相同的行数,或者匹配 ID 上的行数。
我无法在 R 中简化 shapefile
Shapefile 来自这里:https://geoportal.statistics.gov.uk/Docs/Boundaries/Local_authority_district_(GB)_2014_Boundaries_(Generalised_Clipped).zip
library(tmap)
library(maptools)
library(ggmap)
England <- readOGR(dsn = "...")
#works fine
print(qtm(England, "LAD14CD", borders = NA, fill.title = "A-Level" ))
# simplify the polygons
England<-gSimplify(England,tol=0.01, topologyPreserve=TRUE)
print(qtm(England, "LAD14CD", borders = NA, fill.title = "A-Level" ))
给出错误:
Error in process_fill(data, g$tm_fill, gborders, gt, gf, z = z + which(plot.order == :
Fill argument neither colors nor valid variable name(s)
如果您查看 UK 数据对象,您会发现它已从 Large Spatial polygonDataFrame 更改为 Large Spatial Polygons 并删除了 @data
相反,如果您尝试仅简化 Shapefile 中的多边形:
England@polygons<-gSimplify(England@polygons,tol=0.01, topologyPreserve=TRUE)
上面写着:
Error in gSimplify(England@polygons, tol = 0.01, topologyPreserve = TRUE) :
cannot get a slot ("proj4string") from an object of type "list"
如何简化 shapefile 中的多边形?
gSimplify
中的 return 只是几何图形,而不是属性,因此您必须使用简化的几何图形和原始的属性数据构造一个新的 SpatialPolygonsDataFrame
:
> England2 <-gSimplify(England,tol=0.01, topologyPreserve=TRUE)
> England3 = SpatialPolygonsDataFrame(England2, data=England@data)
我认为多边形保证是相同的顺序,除非任何东西都被简化了。检查 length(England2)
具有与 England
相同的行数,或者匹配 ID 上的行数。