Test des Punktes innerhalb des Polygons in Android
Neulich habe ich eine Klasse in Java gemacht, um zu berechnen, ob apoint(X,Y)
befindet sich innerhalb eines Polygons. (X
undY
sinddouble
, weil es sich um Geokoordinaten handelt).
Ich weiß, dass Java die Klasse hatPolygon
, aber ich musste verwendenPath2D
undPoint2D
, daPolygon
nicht zulassendouble
's, nur ganze Zahlen :(
Sobald ich das Polygon fertig habePath2D
Ich habe die Methode benutztcontains
(Path2D
hatte es), und mein Problem wurde gelöst.
Aber jetzt möchte ich auf Android importieren, und das Problem ist hier, weilPath2D
muss importieren:
import java.awt.geom.Path2D;
import java.awt.geom.Point2D;
und in Android gibt es keine awt, also kann ich nicht verwenden.
Gibt es eine ähnliche Klasse?Path2D
das hattecontains
Methode? oder muss ich selber rechnen?
Hier ist, wie ich es in Java gemacht habePath2D
:
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);
}