/** * Get the style for this layer. If style has not been set, then null is returned. * * @return The style (SLD). */ public Style getStyle() { return internal.getStyle(); // if (internal instanceof FeatureLayer) { // FeatureLayer layer = (FeatureLayer) internal; // return layer.getStyle(); // } // if (internal instanceof GridCoverageLayer) { // GridCoverageLayer layer = (GridCoverageLayer) internal; // return layer.getStyle(); // } // if (internal instanceof GridReaderLayer) { // GridReaderLayer layer = (GridReaderLayer) internal; // return layer.getStyle(); // } // return null; }
/** * Returns true if alpha compositing is used anywhere in the style * * @param currentFeature * @return */ private static boolean hasAlphaCompositing(List<Layer> layers) { AlphaCompositeVisitor visitor = new AlphaCompositeVisitor(); for (Layer layer : layers) { Style style = layer.getStyle(); style.accept(visitor); if (visitor.alphaComposite) { return true; } } return false; }
private static Composite getComposite(List<Layer> layers) { Layer layer = layers.get(0); if (layer instanceof ZGroupLayer) { return ((ZGroupLayer) layer).getComposite(); } Style styles = layer.getStyle(); List<FeatureTypeStyle> featureTypeStyles = styles.featureTypeStyles(); if (featureTypeStyles.size() > 0) { FeatureTypeStyle firstFts = featureTypeStyles.get(0); Composite composite = SLDStyleFactory.getComposite(firstFts.getOptions()); return composite; } else { return null; } }
private static List<Layer> arrangeOnZGroups(Layer layer, ZGroupLayer previousGroup) { List<Layer> splitLayers = new ArrayList<>(); if (previousGroup != null) { splitLayers.add(previousGroup); } String currentGroupId = previousGroup != null ? previousGroup.getGroupId() : null; List<FeatureTypeStyle> featureTypeStyles = new ArrayList<>(); for (FeatureTypeStyle fts : layer.getStyle().featureTypeStyles()) { String groupName = fts.getOptions().get(FeatureTypeStyle.SORT_BY_GROUP); if (!(groupName == currentGroupId || (groupName != null && groupName.equals(currentGroupId))) && !featureTypeStyles.isEmpty()) { // the group name changed, dump the current feature type styles addToSplitLayers( layer, previousGroup, splitLayers, currentGroupId, featureTypeStyles); } featureTypeStyles.add(fts); currentGroupId = groupName; } // add the residual fts, if needed if (featureTypeStyles != null) { addToSplitLayers(layer, previousGroup, splitLayers, currentGroupId, featureTypeStyles); } return splitLayers; }
private static boolean hasZGroup(Layer layer, boolean checkValid) { boolean hasGroup = false; if (layer.getStyle() != null) { for (FeatureTypeStyle fts : layer.getStyle().featureTypeStyles()) { Map<String, String> options = fts.getOptions(); String groupName = options.get(FeatureTypeStyle.SORT_BY_GROUP);
List<Layer> layers = new ArrayList<>(); for (Layer layer : mc.layers()) { Style style = layer.getStyle(); if (layer instanceof DirectLayer) { layers.add(new WrappingDirectLayer((DirectLayer) layer));
for (FeatureTypeStyle fts : layer.getStyle().featureTypeStyles()) { if (isFeatureTypeStyleActive(layer.getFeatureSource().getSchema(), fts)) {
/** * Get the style for this layer. If style has not been set, then null is returned. * * @return The style (SLD). */ public Style getStyle(){ return internal.getStyle(); // if (internal instanceof FeatureLayer) { // FeatureLayer layer = (FeatureLayer) internal; // return layer.getStyle(); // } // if (internal instanceof GridCoverageLayer) { // GridCoverageLayer layer = (GridCoverageLayer) internal; // return layer.getStyle(); // } // if (internal instanceof GridReaderLayer) { // GridReaderLayer layer = (GridReaderLayer) internal; // return layer.getStyle(); // } // return null; }
private static String getLayerStyles(Layer[] layers) { StringBuilder sb = new StringBuilder(); for (Layer layer : layers) { sb.append(layer.getStyle().getName()).append(","); } return sb.substring(0, sb.length() - 1); }
public static List<LiteFeatureTypeStyle> getFeatureStyles( Layer layer, final Rectangle screenSize, final double mapScale, FeatureType schema) throws IOException { Style style = layer.getStyle(); List<FeatureTypeStyle> featureStyles = style.featureTypeStyles(); List<LiteFeatureTypeStyle> styleList = createLiteFeatureTypeStyles(layer, featureStyles, schema, mapScale, screenSize); return styleList; }
private String findTitle(Layer layer, Catalog catalog) { if (layer.getTitle() == null) { return null; } String[] nameparts = layer.getTitle().split(":"); ResourceInfo resource = nameparts.length > 1 ? catalog.getResourceByName(nameparts[0], nameparts[1], ResourceInfo.class) : catalog.getResourceByName(nameparts[0], ResourceInfo.class); if (useSldTitle && layer.getStyle() != null && layer.getStyle().getDescription() != null && layer.getStyle().getDescription().getTitle() != null) { return layer.getStyle().getDescription().getTitle().toString(); } if (resource != null) { return resource.getTitle(); } else { return layer.getTitle(); } }
/** * SUB filtering is useful for raster images with "high" variation, otherwise we go for NONE, * empirically it provides better compression at lower effort * * @param mapContent */ private FilterType getFilterType(WMSMapContent mapContent) { RasterSymbolizerVisitor visitor = new RasterSymbolizerVisitor(); for (Layer layer : mapContent.layers()) { // check if the style has a raster symbolizer, don't trust the layer type as // we don't know in advance if there is a rendering transformation // WMS cascading is a ugly case, we might be cascading a map that is vector, but // we don't get to know Style style = layer.getStyle(); if (style != null) { style.accept(visitor); if (visitor.highChangeRasterSymbolizer) { return FilterType.FILTER_SUB; } } } return FilterType.FILTER_NONE; }
if (layerBuffer == 0) { layerBuffer = computeLayerBuffer(map.layers().get(i).getStyle(), scaleDenominator);
private Style getSimplifiedStyle(WMSMapContent mc, Layer layer) { ScaleStyleVisitor visitor = new ScaleStyleVisitor(mc.getScaleDenominator(), (SimpleFeatureType) layer.getFeatureSource().getSchema()); try { layer.getStyle().accept(visitor); return (Style) visitor.getCopy(); } catch (EmptyStackException e) { return null; } }
/** * Encodes the url of a GetMap request. * * <p>If the <tt>layer</tt> argument is <code>null</code>, the request is made including all * layers in the <tt>mapContexT</tt>. * * <p>If the <tt>bbox</tt> argument is <code>null</code>. {@link * WMSMapContent#getAreaOfInterest()} is used for the bbox parameter. * * @param req The getMap request * @param layer The Map layer, may be <code>null</code>. * @param layerIndex The index of the layer in the request * @param bbox The bounding box of the request, may be <code>null</code>. * @param kvp Additional or overidding kvp parameters, may be <code>null</code> * @return The full url for a getMap request. */ public static String getGetMapUrl( GetMapRequest req, Layer layer, int layerIndex, Envelope bbox, String[] kvp) { String layerName = layer != null ? layer.getTitle() : null; String style = layer != null ? layer.getStyle().getName() : null; LinkedHashMap<String, String> params = getGetMapParams(req, layerName, layerIndex, style, bbox, kvp); return ResponseUtils.buildURL(req.getBaseUrl(), "wms", params, URLType.SERVICE); }
GeometryDescriptor geometryDescriptor = schema.getGeometryDescriptor(); Style style = layer.getStyle(); List<FeatureTypeStyle> featureStyles = style.featureTypeStyles(); List<LiteFeatureTypeStyle> styleList = createLiteFeatureTypeStyles(layer, featureStyles,
req, layer.getTitle(), layerIndex, layer.getStyle().getName(), bbox, kvp);
styleName = layer.getStyle().getName();
/** * Adds the feature centroids to the output features, without actually adding the full * geometry (used when doing raster overlays of vector data with a desire to retain the * popups) * @param layer * @param folder */ private void addFeatureCentroids(Layer layer, Folder folder) { try { SimpleFeatureSource source = (SimpleFeatureSource) ((FeatureLayer) layer).getFeatureSource(); SimpleFeatureCollection original = source.getFeatures(); SimpleFeatureCollection centroids = new KMLCentroidFeatureCollection(original); context.setCurrentFeatureCollection(centroids); FeatureLayer centroidsLayer = new FeatureLayer(centroids, layer.getStyle(), layer.getTitle()); List<Feature> features = new SequenceList<Feature>( new FeatureSequenceFactory(context, centroidsLayer)); context.addFeatures(folder, features); } catch(IOException e) { throw new ServiceException( "Failed to load vector data during KML generation", e); } }