JavaFX Как центрировать карту JSON на панели

Я пытаюсь отобразить на панели несколько отдельных карт по выбору пользователя, составленных из координат JSON. Сейчас карта рисуется в левом верхнем углу. Мне нужно, чтобы эта карта была нарисована в центре панели, а не в углу, чтобы ее можно было масштабировать правильно/универсально. Если я использую StackPane и setAlignment(Pos.CENTER);, то все отдельные регионы (они рисуются индивидуально), составляющие карту, рисуются на панели, а не на карте в целом.

Вот код для рисования регионов на панели:

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);

Как я могу настроить его, чтобы он отображался в центре? Спасибо!


person dot    schedule 29.11.2016    source источник


Ответы (1)


Я думаю, что решением было бы объединить отдельные регионы в группу. Затем поместите группу в центральную панель 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);
person Jose Martinez    schedule 29.11.2016