5

我有一组点,我想在 Java 中变成一个封闭的多边形。我目前正在尝试使用 java.awt.geom.Point2D 和 java.awt.geom.Area 但无法弄清楚如何将一组点变成一个区域。

我想我可以根据点定义一组 Line2D,然后将它们添加到区域中,但这是很多工作而且我很懒。那么有没有更简单的方法。

问题是我有一个纬度/经度坐标列表,并且想要建立一个可用于命中测试的区域。

非核心 Java 库也是一种可能。

更新,我查看了使用 java.awt.Polygon 但它只支持整数,并且我正在使用双精度坐标来操作。

4

3 回答 3

3

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4077518

听到“客户”了吗?您应该使用 GeneralPath,尽管自 1990 年代后期以来没有 Polygon2D 是 API 中明显的怪物卡车大小的漏洞。

于 2009-09-02T18:48:11.987 回答
1

如果您实际上正在使用 Geodetic lat/lon 值,您实际上可以使用OpenMap来完成其中的一些工作。我刚刚花了一些时间使用该API 中的Geo 类来围绕由纬度/经度点多边形定义的区域反弹对象。有交集调用,所有的数学运算都是球形完成的,因此就投影而言,这些点更正确。

于 2009-09-02T18:55:37.277 回答
0

最简单(也是最懒惰)的做法是为 X、Y 坐标值的最大值和最小值中的点创建一个边界框。

如果您需要更紧密的拟合,而不是设计自己的算法,这可能是一个不错的起点:

于 2009-11-21T15:00:38.347 回答