View Javadoc
1   package fr.ifremer.dali.map.config;
2   
3   import com.google.common.collect.ImmutableList;
4   import fr.ifremer.dali.config.DaliConfiguration;
5   import fr.ifremer.dali.map.MapLayerDefinition;
6   import fr.ifremer.dali.map.WMTSMapConfiguration;
7   import org.geotools.data.wmts.WebMapTileServer;
8   import org.geotools.data.wmts.model.WMTSCapabilities;
9   import org.geotools.geometry.jts.ReferencedEnvelope;
10  import org.geotools.ows.ServiceException;
11  
12  import java.io.IOException;
13  import java.net.URL;
14  import java.util.List;
15  
16  /**
17   * @author peck7 on 13/06/2019.
18   */
19  public class SextantWMTSMapConfiguration implements WMTSMapConfiguration {
20  
21      // current WMTS instance
22      private WebMapTileServer wmtsServer;
23      private WMTSCapabilities wmtsCapabilities;
24      private List<MapLayerDefinition> mapLayerDefinitions;
25  
26      @Override
27      public boolean isProgressiveRender() {
28          return true;
29      }
30  
31      @Override
32      public String getUrl() {
33          return DaliConfiguration.getInstance().getMapSextantWMTSUrl();
34      }
35  
36      @Override
37      public WMTSCapabilities getCapabilities() throws IOException, ServiceException {
38          if (wmtsCapabilities == null) {
39              wmtsCapabilities = getWebService().getCapabilities();
40          }
41          return wmtsCapabilities;
42      }
43  
44      @Override
45      public WebMapTileServer getWebService() throws IOException, ServiceException {
46          if (wmtsServer == null) {
47              wmtsServer = new WebMapTileServer(new URL(getUrl()));
48          }
49          return wmtsServer;
50      }
51  
52      @Override
53      public String getBaseLayerName() {
54          return "sextant";
55      }
56  
57      @Override
58      public List<MapLayerDefinition> getMapLayerDefinitions() {
59          if (mapLayerDefinitions == null) {
60              mapLayerDefinitions = ImmutableList.of(new MapLayerDefinition(getBaseLayerName(), ReferencedEnvelope.EVERYTHING));
61          }
62          return mapLayerDefinitions;
63      }
64  }