| 
17 | 17 | package com.esri.samples.wmts_layer;  | 
18 | 18 | 
 
  | 
19 | 19 | import java.util.List;  | 
20 |  | -import javafx.application.Application;  | 
21 |  | -import javafx.scene.Scene;  | 
22 |  | -import javafx.scene.control.Alert;  | 
23 |  | -import javafx.scene.layout.StackPane;  | 
24 |  | -import javafx.stage.Stage;  | 
 | 20 | +import java.util.stream.Collectors;  | 
25 | 21 | 
 
  | 
26 | 22 | import com.esri.arcgisruntime.layers.WmtsLayer;  | 
27 | 23 | import com.esri.arcgisruntime.loadable.LoadStatus;  | 
 | 
31 | 27 | import com.esri.arcgisruntime.ogc.wmts.WmtsLayerInfo;  | 
32 | 28 | import com.esri.arcgisruntime.ogc.wmts.WmtsService;  | 
33 | 29 | import com.esri.arcgisruntime.ogc.wmts.WmtsServiceInfo;  | 
 | 30 | +import javafx.application.Application;  | 
 | 31 | +import javafx.scene.Scene;  | 
 | 32 | +import javafx.scene.control.Alert;  | 
 | 33 | +import javafx.scene.layout.StackPane;  | 
 | 34 | +import javafx.stage.Stage;  | 
34 | 35 | 
 
  | 
35 | 36 | public class WmtsLayerSample extends Application {  | 
36 | 37 | 
 
  | 
@@ -58,15 +59,17 @@ public void start(Stage stage) {  | 
58 | 59 |       mapView.setMap(map);  | 
59 | 60 | 
 
  | 
60 | 61 |       // create a WMTS service from a URL  | 
61 |  | -      String serviceURL = "https://sampleserver6.arcgisonline.com/arcgis/rest/services/WorldTimeZones/MapServer/WMTS";  | 
 | 62 | +      String serviceURL = "https://gibs.earthdata.nasa.gov/wmts/epsg4326/best";  | 
62 | 63 |       wmtsService = new WmtsService(serviceURL);  | 
63 | 64 |       wmtsService.addDoneLoadingListener(() -> {  | 
64 | 65 |         if (wmtsService.getLoadStatus() == LoadStatus.LOADED) {  | 
65 | 66 |           WmtsServiceInfo wmtsServiceInfo = wmtsService.getServiceInfo();  | 
66 |  | -          // get the first layer's ID  | 
67 |  | -          List<WmtsLayerInfo> layerInfos = wmtsServiceInfo.getLayerInfos();  | 
 | 67 | +          // obtain the read only list of WMTS layer info objects, and select the one with the desired Id value.  | 
 | 68 | +          List<WmtsLayerInfo> wmtsLayerInfos = wmtsServiceInfo.getLayerInfos();  | 
 | 69 | +          WmtsLayerInfo layerInfo = wmtsLayerInfos.stream()  | 
 | 70 | +            .filter(layer -> layer.getId().equals("SRTM_Color_Index")).collect(Collectors.toList()).get(0);  | 
68 | 71 |           // create the WMTS layer with the LayerInfo  | 
69 |  | -          WmtsLayer wmtsLayer = new WmtsLayer(layerInfos.get(0));  | 
 | 72 | +          WmtsLayer wmtsLayer = new WmtsLayer(layerInfo);  | 
70 | 73 |           map.setBasemap(new Basemap(wmtsLayer));  | 
71 | 74 |         } else {  | 
72 | 75 |           Alert alert = new Alert(Alert.AlertType.ERROR, "Failed to load WMTS layer");  | 
 | 
0 commit comments