7
A
回答
16
您还没有给我们访问您的数据,但这里有一个代表世界各城市的点的例子,使用Carson Farmer在his blog上描述的方法。希望这将让你开始...
# Carson's Voronoi polygons function
voronoipolygons <- function(x) {
require(deldir)
require(sp)
if (.hasSlot(x, 'coords')) {
crds <- [email protected]
} else crds <- x
z <- deldir(crds[,1], crds[,2])
w <- tile.list(z)
polys <- vector(mode='list', length=length(w))
for (i in seq(along=polys)) {
pcrds <- cbind(w[[i]]$x, w[[i]]$y)
pcrds <- rbind(pcrds, pcrds[1,])
polys[[i]] <- Polygons(list(Polygon(pcrds)), ID=as.character(i))
}
SP <- SpatialPolygons(polys)
voronoi <- SpatialPolygonsDataFrame(SP, data=data.frame(x=crds[,1],
y=crds[,2], row.names=sapply(slot(SP, 'polygons'),
function(x) slot(x, 'ID'))))
}
例1:输入是SpatialPointsDataFrame:
# Read in a point shapefile to be converted to a Voronoi diagram
library(rgdal)
dsn <- system.file("vectors", package = "rgdal")[1]
cities <- readOGR(dsn=dsn, layer="cities")
v <- voronoipolygons(cities)
plot(v)
例2:输入是X,Y的载体坐标:
dat <- data.frame(x=runif(100), y=runif(100))
v2 <- voronoipolygons(dat)
plot(v2)
1
如jbaums示出,但更简单的代码相同的原理:
library(dismo)
library(rgdal)
cities <- shapefile(file.path(system.file("vectors", package = "rgdal")[1], "cities"))
v <- voronoi(cities)
plot(v)
相关问题
- 1. 泰森多边形问题
- 2. 如何使用GeoDjango从中心点创建多边形
- 3. 创建使用ST_ConcaveHull从几何POSTGIS多边形点
- 4. 如何从多边形表创建多边形
- 5. 在R代表泰尔森
- 6. 创建用点填充的多边形
- 7. 使用Java从点的多边形创建DXF文件
- 8. 如何使用单点+多边形在GeoJSON中创建GeometryCollection?
- 9. 在ArcGIS中使用Python从原点创建多边形/折线?
- 10. 使用N个点从图像创建一个凹多边形
- 11. 如何从一个点创建多边形?
- 12. 用R中的简单功能创建voronoi多边形R
- 13. 如何创建一个给定点顶点的多边形?
- 14. 如何根据用户输入的地点创建多边形
- 15. 创建多边形
- 16. Java:使用创建的多边形创建星形
- 17. 在r中创建一个多边形 - 没有连接顶点
- 18. R中的点和多边形:获取多边形的名称
- 19. 从边界点创建封闭多边形
- 20. 从多个点创建多边形的算法VB6
- 21. 从多段线创建多边形
- 22. 使用PHP创建多边形
- 23. 如何在Farseer中创建多边形?
- 24. 如何从一组线中找到包围点的多边形?
- 25. R中的多边形交点
- 26. R - 聚合县地图多边形创建自定义边框
- 27. 创建从一个多边形点的Python
- 28. 从postgis中的点创建一个多边形
- 29. 创建的R函数从多核包
- 30. 如何从R中的另一个shapefile获取包含多边形质心的shapefile的多边形?
'install.packages( “SOS”);库( “SOS”); findFn(“thiessen”)' – 2012-02-22 22:06:06
我现在正在使用ArcGIS ... – user2760 2012-02-22 22:08:23