R:多边形合并算法

R:多边形合并算法,r,algorithm,polygon,ggmap,R,Algorithm,Polygon,Ggmap,我有一个具有不同多边形的文件,定义为具有id、lng和lat的data.frame。使用以下代码,我可以在地图上绘制这些多边形 library(ggmap) library(ggplot2) map <- get_googlemap(center = c(lon = 9.26, lat = 47.3), zoom=10) xy <- data.frame(id = c(rep(1,4), rep(2,4)), lng = c(9,9.5,9.5,9,

我有一个具有不同多边形的文件,定义为具有
id
lng
lat
data.frame
。使用以下代码,我可以在地图上绘制这些多边形

    library(ggmap)
    library(ggplot2)

    map <- get_googlemap(center = c(lon = 9.26, lat = 47.3), zoom=10)
    xy <- data.frame(id = c(rep(1,4), rep(2,4)), lng = c(9,9.5,9.5,9,9.25,9.7,9.7,9.24), lat= c(47.1,47.1,47.4,47.4,47.2,47.2,47.5,47.5))
    p <- ggmap(map) + geom_polygon(data=xy, aes(x=xy$lng, y=xy$lat,group=xy$id),fill='red',alpha= 0.2)
    print(p)
库(ggmap)
图书馆(GG2)
如果您的意思是:

我想画一个多边形,它覆盖了所有的物体 至少一个多边形

那么,您所追求的可能就是
chull
(凸面外壳)

例如(但不是ggplot):

#创建数据:(x,y)-坐标

很可能不会,因为您需要考虑分离集、重叠区域等。如果您可以通过流程图描述如何合并多边形,那么您(或我们)可以提出一些代码。
# create data: (x,y)-coords
x<-c(1:9,9:1)
y<-runif(length(x))*10
# plot `em
plot(x,y,type="l")
# these are the indexes of points that are the convex hull
print(chull(x,y))
these.idx<-chull(x,y)
# plot the convex hull using the indexes
lines(x[these.idx],y[these.idx],type="l",col="red",lwd=2)
library(ggmap)
library(ggplot2)

map <- get_googlemap(center = c(lon = 9.26, lat = 47.3), zoom=10)
xy <- data.frame(id = c(rep(1,4), rep(2,4))
    , lng = c(9,9.5,9.5,9,9.25,9.7,9.7,9.24)
    , lat= c(47.1,47.1,47.4,47.4,47.2,47.2,47.5,47.5))
ch.idx<-chull(xy$lng,xy$lat)
xy<-xy[ch.idx,]
# removing:: ,group=xy$id
p <- ggmap(map) 
p <- p + geom_polygon(data=xy, aes(x=xy$lng, y=xy$lat),fill='red',alpha= 0.2)
print(p)