找到离给定点最近的多边形

Posted

技术标签:

【中文标题】找到离给定点最近的多边形【英文标题】:Finding the nearest polygon to the given points 【发布时间】:2021-12-24 20:14:15 【问题描述】:

我需要将最近的多边形(总共 1435 个多边形)连接到给定的点 (945)(我需要选择 945 个最近的多边形)。 尽管过程听起来很简单,但一个转折是我的分数被分配了一个序数。每个点都需要分配一个唯一的多边形,这意味着,例如,如果序号为 12 和 20 的点最接近多边形 x,则应为点 12 分配多边形 x,而必须为点 20 分配另一个多边形,最接近这一点。如何在 R、Python、QGIS 或 ArcGIS Pro 中解决这个问题?

【问题讨论】:

R sf::st_nearest() 请提供足够的代码,以便其他人更好地理解或重现问题。 【参考方案1】:

您可以通过将分配问题应用于距离矩阵来最小化对之间的总距离总和来进行配对。 df_polygonsf 具有多边形几何的对象,df_pointsf 具有点几何的对象:

d <- sf::st_distance(df_polygon, df_point, which = "Great Circle")
res <- RcppHungarian::HungarianSolver(d)
cost <- res$cost
pairs <- res$pairs[res$pairs[, 2] > 0,]

【讨论】:

以上是关于找到离给定点最近的多边形的主要内容,如果未能解决你的问题,请参考以下文章

使用 JTS,如何从外部点找到多边形边界上最近的点?

创建穿过所有给定点的非相交多边形

查找给定多边形 w.r.t 的两个“边界”顶点。已知(光源)点

Bigquery - 给定一个地理点和距离如何在它周围获得一个多边形

cf Round 613

找到形成凸多边形的最大点子集