有一天我在Java中做了一個類來計算point(X,Y)
是否在多邊形內。 (X
和Y
是double
,因爲將是地理座標)。Android中的點內多邊形測試
我知道Java有類Polygon
,但我不得不使用Path2D
和Point2D
,因爲Polygon
不允許double
的,只是整數:(
我一旦多邊形在Path2D
做的,我使用的方法contains
(Path2D
了吧),我的問題解決了
但現在,我要導入到Android的,問題就在這裏,因爲Path2D
需要進口。
import java.awt.geom.Path2D;
import java.awt.geom.Point2D;
在Android中不存在awt,所以我無法使用。
那麼,有沒有類似於Path2D
那有contains
方法?或者我必須自己計算?
這是我如何使用Path2D
沒有在Java中:
private void ConstructPolygon(Vector<Point2D> coodinates)
{
this.polygon.moveTo(coodinates.get(0).getX(), coodinates.get(0).getY());
//System.out.println(coodinates.get(0).getX() + " " + coodinates.get(0).getY());
//System.out.println("asda");
for(int i = 1; i < this.num_points; i++)
{
//System.out.println(coodinates.get(i).getX() + " " + coodinates.get(i).getY());
this.polygon.lineTo(coodinates.get(i).getX(), coodinates.get(i).getY());
}
this.polygon.closePath();
}
public boolean InsideCity(Point2D punto)
{
return this.polygon.contains(punto);
}
也許你可能只是10000乘以所有'double'值並使用它們與Java'Polygon'類? – 2016-04-20 07:51:46