【问题标题】:Algorithm to create area filled points on Map [duplicate]在地图上创建区域填充点的算法[重复]
【发布时间】:2015-09-12 16:42:10
【问题描述】:

我一直在 .NET 中处理一个巨大的 Map 项目。在那个项目工作期间,我遇到了一个问题。我的坐标(纬度,经度)有很多点,我需要绘制一个可以“填充”我的点的多边形。我的问题是,如何选择外面的点来绘制多边形。我附上了一个图片文件来澄清我的问题 -> http://postimg.org/image/fwsf0v285/

【问题讨论】:

  • 没有很多人可以说。一些代码会有所帮助。
  • 感谢您的回答。这就是我一直在寻找的。​​span>
  • 对这个问题有元影响的可能性:链接自meta.stackoverflow.com/questions/297804/…

标签: c# algorithm maps coordinates


【解决方案1】:

听起来您想要一个围绕数据点的多边形。有两种算法可用。

首先是“凸包”。这是计算几何的经典算法,将生成您绘制的多边形。想象一下,您的数据点是板上的钉子,它会产生一个多边形,类似于已放置在外部数据点周围的松紧带。凸壳很快(或应该是)。 凸壳真的很常见,我知道我已经将它们编码为在地球表面上工作(即考虑到地球的曲率)。这是一个更简单的欧几里得示例(来自stackoverflow),应该可以帮助您入门: Translating concave hull algorithm to c#

另一种选择是“Alpha 形状”,有时也称为“凹壳”。基本上,它允许多边形侧面的凹(向内)曲线大于指定尺寸('alpha')。例如,数据点的“C”应该产生“C 形”,而凸包会给您提供更像“O”的东西,因为它会切断凹空。 Alpha 形状涉及更多,因为它们需要计算 Delauney 三角剖分。

【讨论】:

  • 如果问题重复,请投票关闭,而不是发布本质上是链接的答案。
  • 我的回答不仅仅是一个链接——链接是一个实现。我还提供了第二个选项,根据情况产生更准确的结果。 OP 并不清楚哪个更合适,但他们都按照他的要求做了。
  • 非常感谢您的全面回答。我想,我会决定使用“Convex Hull”,因为正如你所说,它非常快。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-16
  • 1970-01-01
  • 1970-01-01
  • 2023-03-04
相关资源
最近更新 更多