2016-11-29 8 views
0

Ich versuche, mehrere individuelle Karten der Benutzerauswahl anzuzeigen, die aus JSON-Koordinaten in einem Fensterbereich stammen. Im Moment wird die Karte in der oberen linken Ecke gezeichnet. Ich brauche diese Karte, um in die Mitte der Scheibe, nicht in eine Ecke, gezeichnet zu werden, damit sie richtig/universell skaliert werden kann. Wenn ich StackPane und setAlignment(Pos.CENTER); verwende, dann werden alle separaten Bereiche (sie werden einzeln gezeichnet), die die Karte bilden, in dem Bereich gezeichnet, nicht die gesamte Karte.JavaFX So zentrieren Sie die JSON-Map in einem Bereich

Hier ist der Code, um die Regionen für das Zeichnen auf der Scheibe:

public void addPolygon(List<Point2D>coordinates, Color color){ 
    Polygon polygon = new Polygon(); 
    for(Point2D point : coordinates) 
     polygon.getPoints().addAll(point.getX(), point.getY()); 

     //outline each polygon in black 
     polygon.setStroke(Color.BLACK); 
     polygon.setStrokeWidth(0.08); 

     //sets the color of the polygon derived from a random color generator 
     polygon.setFill(color); 

    //add created polygons to pane 
    mapPane.getChildren().add(polygon); 

Wie kann ich es zwicken in der Mitte zu erscheinen? Vielen Dank!

Antwort

0

Ich denke, die Lösung wäre, die einzelnen Regionen in eine Gruppe zu setzen. Dann setze die Gruppe in den zentrierten StackPane.

private Group mapGroup = new Group(); 

public void addPolygon(List<Point2D>coordinates, Color color){ 
    Polygon polygon = new Polygon(); 
    for(Point2D point : coordinates) 
     polygon.getPoints().addAll(point.getX(), point.getY()); 

     //outline each polygon in black 
     polygon.setStroke(Color.BLACK); 
     polygon.setStrokeWidth(0.08); 

     //sets the color of the polygon derived from a random color generator 
     polygon.setFill(color); 

    //add created polygons to pane 
    mapGroup.getChildren().add(polygon); 
+0

das löste es, danke! – dot

Verwandte Themen