【发布时间】:2012-01-27 09:10:11
【问题描述】:
我有一个解决方案,它使用空间数据来表示地图上的一组点。我需要使用代表集群范围的坐标来找到可以包含所述点集群的最小边界矩形。
是否存在任何简单的算法来计算这个,或者 C# 中是否有任何内置功能来实现这个。我知道 NetTopologySuite,但不确定如何/是否可以使用它来实现相同的目标。我有一个坐标列表,所以我需要将这个字符串列表传递给它并取出 MBR。
【问题讨论】:
-
不幸的是,我不知道从哪里开始解决这个问题。我正处于将我的坐标放在字符串类型列表中的阶段,并且不确定如何从这里继续前进。
-
@你有两种类型:轴对齐的边界框;只需找到最小 x/y 和最大 x/y 即可找到。或者你有更复杂的任意方向的边界框(en.wikipedia.org/wiki/Minimum_bounding_box_algorithms)。如果您需要考虑地球的曲率(我希望您不要),这会变得更加复杂,尽管从技术上讲您仍在绘制一个盒子,但它实际上是球体表面的一部分(可能太多了你需要的)
-
我明白了。我需要一个为盒子提供 4 个坐标的函数。所以两个 X 值和两个 Y 值。您是否建议最好的方法是拆分我的坐标,然后将它们全部比较以找到最低的 X 值和最小的 Y 值?如果我这样做,那么我假设我只会得到一个 minX 值和一个 maxY 值?从这两个数字是否可以计算其他 X 和 Y 值?对不起,如果我看起来有点失落。空间根本不是我的领域。
-
目前我不必考虑曲率,因为我使用的是英国国家电网,但随着时间的推移它可能会成为一项要求,但现在我只想获得一个工作功能,然后可以从那里继续.