2016-05-24 9 views
1

Ich mache ein Programm in Java, das eine Karte mit JMapViewer anzeigt und ein statisches Polygon zeichnet. Wenn der Benutzer in der Karte klickt, sagt das Programm "der Punkt, auf den Sie geklickt haben, ist im Polygon" oder "nicht im Polygon". Wie kann ich berechnen, wenn der Punkt im Polygon ist oder nicht? Gibt es eine bereit Methode/Klasse, das zu tun?Koordinatenpunkt ist in Jmapviewer Polygon?

Danke, Luca

Antwort

1

Kurz umrissen

  • ein MapPolygon Konstrukt als here gezeigt.

  • Erkennen Sie Mausklicks mit einem benutzerdefinierten DefaultMapController wie gezeigt here.

  • In mouseClicked() konstruieren einen java.awt.Polygon vom List<ICoordinate> durch MapPolygon::getPoints zurück Iterieren durch; Verwenden Sie die Methode JMapViewer::getPosition, um jede ICoordinate in eine Point umzuwandeln.

  • Verwenden Sie Polygon::contains, um festzustellen, ob sich die Mauskoordinaten in diesem Polygon befinden.

image