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