R:poly_center超出多边形边界

时间:2015-08-06 21:12:19

标签: r polygon sp

我使用R来计算由此file中读取的图形定义的多边形的质心,使用poly_center(pracma包)。

奇怪的是,我得到的结果是多边形边界,是低于两者的中心点,x(lon)和y(纬度)轴/坐标的最小值(见下面的代码)。任何人都可以暗示我做错了什么或者这里发生了什么?

    # loading needed packages
    require(pracma)
    require(sp)
    t <- read.csv(file="testcm.txt",head=FALSE,row.names=NULL)[-1,] # readind file
    attach(t)
    lon <- V1
    lat <- V2
    cm <- poly_center(lon,lat) # center of mass
    cm
    [1] -49.92585 -16.52163
    min(lon)
    [1] -49.05978
    min(lat)
    [1] -16.45963
    plot(coordinates(t), type="n", xlab="longitude", ylab="latitude", xlim=c(-65,-40) , ylim=c(-35,-10)) # drawing base contours
    polygon(lon, lat, border = "red") # drawing polygon
    points(cm[1],cm[2], pch=22, col="blue") # drawing center of mass

1 个答案:

答案 0 :(得分:0)

查看poly_center,您可能还需要将多边形坐标的第一行绑定到末尾。看起来代码不会将最后一点包装回第一个。

尝试

tmp <- rbind(coordinates(t), coordinates(t)[1,])
points(t(poly_center(tmp[,1], tmp[,2])), col="green", pch=16)