Test de Point à l'intérieur d'un polygone dans Android

L'autre jour j'ai fait une classe en Java pour calculer si un point(X,Y) est à l'intérieur d'un polygone. (X et Y sont double, parce que seront les coordonnées géographiques).

Je sais que Java a la classe Polygon, mais j'ai dû utiliser Path2D et Point2D, parce que Polygon ne permettent pas de double's, tout entiers 🙁

Une fois que j'ai le polygone fait dans Path2D, j'ai utilisé la méthode contains (Path2D a), et mon problème a été résolu.

Mais maintenant, je veux importer pour Android, et le problème est ici, parce que Path2D besoins d'importation:

import java.awt.geom.Path2D;
import java.awt.geom.Point2D;

et dans Android n'existe pas awt, je ne peux donc pas utiliser.

Donc, il n'existe aucune catégorie similaire à Path2D qui avait contains méthode? ou je dois calculer par moi-même?

Voici comment je l'ai fait en Java à l'aide de 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);                
}
Peut-être que vous pourriez avoir tout multiplié tous les double valeurs par 10 000 et utilisé avec Java Polygon classe?

OriginalL'auteur Shudy | 2013-04-04