如何在FXML布局中包含ArcGIS Java地图?

时间:2019-07-16 23:52:28

标签: java javafx fxml arcgis-runtime

我正在尝试在JavaFx中创建一个包含交互式地图的UI。我正在使用ArcGIS Runtime SDK for Java创建地图。 已经能够使用以下代码将地图显示在窗口中,其中未使用FXML

public class Main extends Application {

    private MapView mapView;

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {
        StackPane root = new StackPane();
        Scene scene = new Scene(root);
        primaryStage.setScene(scene);
        primaryStage.show();
        ArcGISMap map = new ArcGISMap(Basemap.Type.IMAGERY, 40, -75, 6);
        mapView = new MapView();
        mapView.setMap(map);
        root.getChildren().addAll(mapView);
    }
}

但是,start方法中进行了一些细微修改以使用 FXML布局,我最终得到了一个空白映射

public class Main extends Application {

    @FXML private MapView mapView;

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {
        Parent root = null;
        try {
            root = FXMLLoader.load(getClass().getResource("main.fxml"));
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        Scene scene = new Scene(root);
        primaryStage.setScene(scene);
        primaryStage.show();
        ArcGISMap map = new ArcGISMap(Basemap.Type.IMAGERY, 40, -75, 6);
        mapView = new MapView();
        mapView.setMap(map);
    }
}

以下是main.fxml文件的重要部分:

<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="650.0" prefWidth="1200.0" xmlns="http://javafx.com/javafx/12.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="me.connorc.Main">
   <center>
      <StackPane BorderPane.alignment="CENTER">
         <MapView fx:id="mapView"/>
      </StackPane>
   </center>
</BorderPane>

这是我的窗口的样子: Link to image

在上面链接的图像中mapView的下角,您可以看到“由Esri技术支持”,这表示 mapView在其中,但没有显示地图< / strong>。

关于如何使地图显示在mapView上的任何想法?

0 个答案:

没有答案