将列表java.awt.geom.Point2D转换为java.awt.geom.Area

时间:2009-09-02 18:16:17

标签: java awt

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

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

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

非核心Java库也是可能的。

更新,我看了一下使用java.awt.Polygon,但它只支持整数,我正在使用双精度坐标。

3 个答案:

答案 0 :(得分:3)

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

听到,“客户”?你应该使用GeneralPath,尽管自20世纪90年代末以来缺少Polygon2D是一个明显的怪物卡车大小的API洞。

答案 1 :(得分:1)

如果您实际使用的是Geodetic lat / lon值,您实际上可以使用OpenMap来完成这项工作。我花了一些时间使用该API中的Geo class来反弹由lat / lon点多边形定义的区域周围的对象。有intersection calls并且所有数学都是以球形方式完成的,因此就投影而言,这些点更正确。

答案 2 :(得分:0)

最简单(也是最懒惰)的事情是从X,Y纵坐标值的最大值和最小值创建点的边界框。

如果您需要更贴合,而不是设计自己的算法,这可能是一个很好的起点: