3232import javafx .util .Callback ;
3333
3434import com .esri .arcgisruntime .data .GeoPackage ;
35- import com .esri .arcgisruntime .data .GeoPackageFeatureTable ;
3635import com .esri .arcgisruntime .layers .FeatureLayer ;
3736import com .esri .arcgisruntime .layers .Layer ;
3837import com .esri .arcgisruntime .layers .RasterLayer ;
3938import com .esri .arcgisruntime .mapping .ArcGISMap ;
4039import com .esri .arcgisruntime .mapping .Basemap ;
4140import com .esri .arcgisruntime .mapping .view .MapView ;
42- import com .esri .arcgisruntime .raster .GeoPackageRaster ;
4341
4442public class ReadGeoPackageSample extends Application {
4543
@@ -85,7 +83,7 @@ public void start(Stage stage) throws Exception {
8583 // add labels and lists to the control panel
8684 vBoxControl .getChildren ().addAll (mapLayersLabel , mapLayers , geoPackageLayersLabel , geoPackageLayers );
8785
88- // create a cell factory to show the layer descriptions in the list view
86+ // create a cell factory to show the layer names in the list view
8987 Callback <ListView <Layer >, ListCell <Layer >> cellFactory = list -> new ListCell <Layer >() {
9088
9189 @ Override
@@ -95,12 +93,12 @@ protected void updateItem(Layer layer, boolean bln) {
9593 if (layer != null ) {
9694 if (layer instanceof FeatureLayer ) {
9795 FeatureLayer featureLayer = (FeatureLayer ) layer ;
98- GeoPackageFeatureTable featureTable = (GeoPackageFeatureTable ) featureLayer .getFeatureTable ();
99- setText (featureTable .getDescription ());
96+ setText (featureLayer .getName ());
10097 } else if (layer instanceof RasterLayer ) {
10198 RasterLayer rasterLayer = (RasterLayer ) layer ;
102- GeoPackageRaster raster = (GeoPackageRaster ) rasterLayer .getRaster ();
103- setText (raster .getDescription ());
99+ // use the raster file name if the raster layer name is empty
100+ String path = rasterLayer .getRaster ().getPath ();
101+ setText (rasterLayer .getName ().isEmpty () ? path .substring (path .lastIndexOf ('/' ) + 1 ) : rasterLayer .getName ());
104102 }
105103 } else {
106104 setText (null );
@@ -147,13 +145,18 @@ protected void updateItem(Layer layer, boolean bln) {
147145 GeoPackage geoPackage = new GeoPackage (geoPackageFile .getAbsolutePath ());
148146 geoPackage .loadAsync ();
149147 geoPackage .addDoneLoadingListener (() -> {
150- geoPackage .getGeoPackageRasters ().forEach (r -> {
151- RasterLayer rasterLayer = new RasterLayer (r );
148+ geoPackage .getGeoPackageRasters ().forEach (raster -> {
149+ RasterLayer rasterLayer = new RasterLayer (raster );
150+ rasterLayer .loadAsync ();
152151 // make the raster layer semi-transparent so we can see layers below it
153152 rasterLayer .setOpacity (0.5f );
154153 geoPackageLayers .getItems ().add (rasterLayer );
155154 });
156- geoPackage .getGeoPackageFeatureTables ().forEach (t -> geoPackageLayers .getItems ().add (new FeatureLayer (t )));
155+ geoPackage .getGeoPackageFeatureTables ().forEach (table -> {
156+ FeatureLayer featureLayer = new FeatureLayer (table );
157+ featureLayer .loadAsync ();
158+ geoPackageLayers .getItems ().add (featureLayer );
159+ });
157160 });
158161
159162 // add the map view and control box to stack pane
0 commit comments