На днях я сделал класс на 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
метод? или я должен рассчитать один?
Вот как я сделал в Java с помощью Path2D
:
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);
}
Может быть, вы могли бы просто умноженной все 'double' значения на 10000 и использовали их с классом Java 'Polygon'? –