我正在尝试在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
上的任何想法?