private void writeSiteMapIndexLoop() throws IOException { OutputStream os = tile.servletResp.getOutputStream(); String urlPrefix = tile.getUrlPrefix(); Iterable<TileLayer> iter = tLD.getLayerList(); for (TileLayer tl : iter) { if (!tl.isEnabled()) { continue; } Set<String> grids = tl.getGridSubsets(); List<MimeType> mimeTypes = tl.getMimeTypes(); if( grids != null && grids.contains(gridSetBroker.WORLD_EPSG4326.getName()) && mimeTypes != null && mimeTypes.contains(XMLMime.kml) ) { String smStr = "<sitemap><loc>"+urlPrefix+tl.getName()+"/sitemap.xml</loc></sitemap>"; os.write(smStr.getBytes()); } } }
Iterable<TileLayer> layerIter = tld.getLayerList(); for (TileLayer layer : layerIter) { if (!layer.isEnabled() || !layer.isAdvertised()) { continue; for (String gridSetId : layer.getGridSubsets()) { GridSubset grid = layer.getGridSubset(gridSetId); if (layer.getMimeTypes() != null) { for (MimeType mime : layer.getMimeTypes()) { formats.add(mime.getFormat()); List<String> styles = getStyles(layer.getParameterFilters()); Map<String, LegendInfo> legendsInfo = layer.getLayerLegendsInfo(); for (String format : formats) { for (String style : styles) {
private void initialize(final TileLayer layer) { log.info("Initializing TileLayer '" + layer.getName() + "'"); setDefaultValues(layer); layer.initialize(gridSetBroker); }
public Set<String> getLayerNamesForGridSets(final Set<String> gridSetIds) { Set<String> layerNames = new TreeSet<String>(); for (TileLayer layer : getTileLayers()) { Set<String> layerGrids = layer.getGridSubsets(); if (!Sets.intersection(gridSetIds, layerGrids).isEmpty()) { layerNames.add(layer.getName()); } } return layerNames; }
private void makeBboxHints(StringBuilder doc, TileLayer tl) { for (String gridSetId : tl.getGridSubsets()) { GridSubset subset = tl.getGridSubset(gridSetId); doc.append( "<li>" + gridSetId + ": " + subset.getOriginalExtent().toString() + "</li>\n"); } }
for (String layerName : layerList) { TileLayer layer = tileLayerDispatcher.getTileLayer(layerName); if (!layer.isAdvertised()) { continue; .append(layer.getName()) .append("</strong><br />\n"); buf.append("<a href=\"rest/seed/") .append(layer.getName()) .append("\">Seed this layer</a>\n"); buf.append("</td><td>").append(layer.isEnabled()).append("</td>"); buf.append("<td><table width=\"100%\">"); for (String gridSetId : layer.getGridSubsets()) { GridSubset gridSubset = layer.getGridSubset(gridSetId); String gridSetName = gridSubset.getName(); if (gridSetName.length() > 20) { layer.getMimeTypes() .stream() .filter(type -> type.supportsTiling() || type.isVector()) type -> generateDemoUrl( layer.getName(), gridSubset.getName(), type)) layer.getMimeTypes()
when(tileLayer.getParameterFilters()).thenReturn(Arrays.asList(styles, time, elevation)); .withMaxScale(10000D) .build(); when(tileLayer.getLayerLegendsInfo()) .thenReturn(Collections.singletonMap("style-b", legendInfo2)); when(tileLayer.getName()).thenReturn(layerName); when(tileLayer.isEnabled()).thenReturn(true); when(tileLayer.isAdvertised()).thenReturn(true); when(tileLayer.getMimeTypes()).thenReturn(Arrays.asList(mimeType1, mimeType2)); when(tileLayer.getInfoMimeTypes()) .thenReturn(Arrays.asList(infoMimeType1, infoMimeType2, infoMimeType3)); Map<String, GridSubset> subsets = new HashMap<String, GridSubset>(); when(tileLayer.getGridSubset(eq(gsetName))).thenReturn(gridSubSet); when(tileLayer.getGridSubsetsForSRS(eq(srs))).thenReturn(list); when(tileLayer.getGridSubsets()).thenReturn(subsets.keySet()); when(tileLayer.getTile(any(ConveyorTile.class))) .thenAnswer( new Answer<ConveyorTile>() { when(tileLayer.getFeatureInfo( any(ConveyorTile.class),
String format = req.getMimeFormat(); if (format == null) { mimeType = tl.getMimeTypes().get(0); } else { try { List<GridSubset> crsMatches = tl.getGridSubsetsForSRS(srs); if (!crsMatches.isEmpty()) { if (crsMatches.size() == 1) { gridSetId = tl.getGridSubsets().iterator().next(); GridSubset gridSubset = tl.getGridSubset(gridSetId); int[] metaTilingFactors = tl.getMetaTilingFactors(); String layerName = tl.getName(); Map<String, String> parameters = req.getParameters(); return new TileRange(
Iterable<TileLayer> layerIter = tld.getLayerList(); for (TileLayer layer : layerIter) { if (!layer.isEnabled()) { continue; for (String gridSetId : layer.getGridSubsets()) { GridSubset grid = layer.getGridSubset(gridSetId); if (layer.getMimeTypes() != null) { for (MimeType mime : layer.getMimeTypes()) { formats.add(mime.getFormat()); List<String> styles = getStyles(layer.getParameterFilters()); for (String format : formats) { for (String style : styles) {
private void capabilityLayerInner(StringBuilder str, TileLayer layer) throws GeoWebCacheException { if (layer.isQueryable()) { str.append(" <Layer queryable=\"1\">\n"); } else { str.append(" <Name>" + layer.getName() + "</Name>\n"); if (layer.getMetaInformation() != null) { LayerMetaInformation metaInfo = layer.getMetaInformation(); str.append(" <Title>" + metaInfo.getTitle() + "</Title>\n"); str.append(" <Abstract>" + metaInfo.getDescription() + "</Abstract>\n"); } else { str.append(" <Title>" + layer.getName() + "</Title>\n"); for (String gridSetId : layer.getGridSubsets()) { GridSubset curGridSubSet = layer.getGridSubset(gridSetId); SRS curSRS = curGridSubSet.getSRS(); if (!srsSet.contains(curSRS)) { GridSubset epsg4326GridSubSet = layer.getGridSubsetForSRS(SRS.getEPSG4326()); if (null != epsg4326GridSubSet) { String[] bs = boundsPrep(epsg4326GridSubSet.getCoverageBestFitBounds()); if (layer.getParameterFilters() != null) { StringBuilder dims = new StringBuilder(); StringBuilder extents = new StringBuilder(); for (ParameterFilter parameterFilter : layer.getParameterFilters()) { if (parameterFilter instanceof WMSDimensionProvider) { ((WMSDimensionProvider) parameterFilter).appendDimensionElement(dims, " ");
try { mimeType = MimeType.createFromFormat(request.getFormat()); List<MimeType> tileLayerFormats = tileLayer.getMimeTypes(); if (!tileLayerFormats.contains(mimeType)) { requestMistmatchTarget.append("no tile cache for requested format"); int epsgId = Integer.parseInt(srs.substring(srs.indexOf(':') + 1)); SRS srs2 = SRS.getSRS(epsgId); crsMatchingGridSubsets = tileLayer.getGridSubsetsForSRS(srs2); fullParameters = tileLayer.getModifiableParameters(requestParameterMap, "UTF-8"); HttpServletRequest servletReq = null; HttpServletResponse servletResp = null; String layerName = tileLayer.getName(); tileReq = new ConveyorTile(storageBroker, layerName, gridSetId, tileIndex, mimeType, fullParameters, servletReq, servletResp);
private void findEnabledPolls() { final Iterable<TileLayer> layers = seeder.getLayers(); for (TileLayer layer : layers) { if (layer.getUpdateSources().size() == 0) { continue; if (!layer.isEnabled()) { logger.info("Ignoring polling GeoRSS update sources for layer '" + layer.getName() + "' as the layer is disabled"); for (UpdateSourceDefinition usd : layer.getUpdateSources()) { if (usd instanceof GeoRSSFeedDefinition) { final GeoRSSFeedDefinition georssDef = (GeoRSSFeedDefinition) usd; final GridSubset gridSubset = layer.getGridSubset(gridSetId); if (gridSubset == null) { throw new IllegalStateException("Layer " + layer.getName() + " has no grid subset " + gridSetId + " as configured by its GeoRSS seeding feed " + georssDef); logger.info("Scheduling GeoRSS feed for layer " + layer.getName() + ":" + georssDef); scheduledPolls.add(new PollDef(layer, georssDef)); } else { logger.info("Feed disabled for layer " + layer.getName() + ", ignoring: " + georssDef);
tileLayer.getName(), gridSetId, linkGridLocs[i], mime, null, null, null); tileLayer.applyRequestFilters(tile); } catch(GreenTileException e) { tileLayer.getTile(tile); } catch (IOException ioe) { log.error(ioe.getMessage());
protected void tileMapsForLayer( XMLBuilder xml, TileLayer layer, String baseUrl, String contextPath) throws IOException { for (String gridSetId : layer.getGridSubsets()) { GridSubset gridSub = layer.getGridSubset(gridSetId); for (MimeType mimeType : layer.getMimeTypes()) { // GridSubset gridSub = iter.next(); xml.indentElement("TileMap") .attribute("title", tileMapTitle(layer)) .attribute("srs", gridSub.getSRS().toString()) .attribute("profile", profileForGridSet(gridSub.getGridSet())) .attribute( "href", tileMapUrl(layer, gridSub, mimeType, baseUrl, contextPath)) .endElement(); } } }
public TruncateTask(StorageBroker sb, TileRange tr, TileLayer tl, boolean doFilterUpdate) { this.storageBroker = sb; this.tr = tr; this.tl = tl; this.doFilterUpdate = doFilterUpdate; super.parsedType = GWCTask.TYPE.TRUNCATE; super.layerName = tl.getName(); }
private void capabilityRequestGetFeatureInfo(XMLBuilder xml) throws IOException { // Find all the info formats we support Iterable<TileLayer> layerIter = tld.getLayerList(); HashSet<String> formats = new HashSet<String>(); for (TileLayer layer : layerIter) { if (!layer.isEnabled() || !layer.isAdvertised()) { continue; } if (layer.getMimeTypes() != null) { Iterator<MimeType> mimeIter = layer.getInfoMimeTypes().iterator(); while (mimeIter.hasNext()) { MimeType mime = mimeIter.next(); formats.add(mime.getFormat()); } } else { formats.add("text/plain"); formats.add("text/html"); formats.add("application/vnd.ogc.gml"); } } capability(xml, "GetFeatureInfo", formats, urlStr); }
private void setCacheMetadataHeaders(RawMap map, ConveyorTile cachedTile, TileLayer layer) { long[] tileIndex = cachedTile.getTileIndex(); CacheResult cacheResult = cachedTile.getCacheResult(); GridSubset gridSubset = layer.getGridSubset(cachedTile.getGridSetId()); BoundingBox tileBounds = gridSubset.boundsFromIndex(tileIndex); String cacheResultHeader = cacheResult == null ? "UNKNOWN" : cacheResult.toString(); map.setResponseHeader("geowebcache-layer", layer.getName()); map.setResponseHeader("geowebcache-cache-result", cacheResultHeader); map.setResponseHeader("geowebcache-tile-index", Arrays.toString(tileIndex)); map.setResponseHeader("geowebcache-tile-bounds", tileBounds.toString()); map.setResponseHeader("geowebcache-gridset", gridSubset.getName()); map.setResponseHeader("geowebcache-crs", gridSubset.getSRS().toString()); }
} else { GridSubset subset = tl.getGridSubset(gridSetId); bounds = subset.getOriginalExtent(); fullParameters = tl.getModifiableParameters(parameters, "UTF-8"); final String layerName = tl.getName(); SeedRequest sr = new SeedRequest(
private void capabilityRequestGetMap(XMLBuilder xml) throws IOException { // Find all the formats we support Iterable<TileLayer> layerIter = tld.getLayerList(); HashSet<String> formats = new HashSet<String>(); for (TileLayer layer : layerIter) { if (!layer.isEnabled() || !layer.isAdvertised()) { continue; } if (layer.getMimeTypes() != null) { Iterator<MimeType> mimeIter = layer.getMimeTypes().iterator(); while (mimeIter.hasNext()) { MimeType mime = mimeIter.next(); formats.add(mime.getFormat()); } } else { formats.add("image/png"); formats.add("image/jpeg"); } } capability(xml, "GetMap", formats, urlStr); }
public synchronized GridSubset getGridSubset() { if (gridSubset == null && gridSetId != null) { gridSubset = tileLayer.getGridSubset(gridSetId); } return gridSubset; }