Neulich habe ich eine Klasse in Java, um zu berechnen, ob eine point(X,Y)
in einem Polygon ist. (X
und Y
sind double
, weil Geokoordinaten sein werden).Test von Punkt innerhalb Polygon in Android
Ich weiß, dass Java die Klasse hat Polygon
, aber ich hatte Path2D
und Point2D
, zu verwenden, da Polygon
nicht double
‚s erlauben, nur ganze Zahlen :(
Sobald ich das Polygon in Path2D
getan haben, ich die Methode contains
(Path2D
hatte), und mein Problem gelöst wurde
Aber jetzt möchte ich Android importieren, und das Problem ist hier, weil Path2D
Bedürfnisse zu importieren.
import java.awt.geom.Path2D;
import java.awt.geom.Point2D;
und in Android existieren nicht AWT, also kann ich nicht verwenden.
Also, gibt es eine Klasse ähnlich Path2D
, die contains
Methode hatte? oder muss ich selbst berechnen?
Hier ist, wie ich in Java tat Path2D
mit:
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);
}
Vielleicht könnten Sie einfach die 'alle von 10.000 double' Werte haben sich vervielfacht und benutzte sie mit der Java 'Polygon' Klasse? –