Mercurial > gemma
changeset 4537:e0d04cd8f992 iso-areas
Add SLD templates dir for geoserver with one template
* Add script to upload SLD templates to gemma.
* Add sounding_results_area.sld-template for polygons, still visible
at all zoom level for debugging (see xml commented out line).
author | Bernhard Reiter <bernhard@intevation.de> |
---|---|
date | Wed, 25 Sep 2019 22:01:05 +0200 |
parents | 3130c005abef |
children | 46c9a731a686 |
files | style-templates/sounding_results_area.sld-template style-templates/upload-styles.sh |
diffstat | 2 files changed, 218 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/style-templates/sounding_results_area.sld-template Wed Sep 25 22:01:05 2019 +0200 @@ -0,0 +1,99 @@ +<?xml version="1.0" encoding="UTF-8"?> +<StyledLayerDescriptor + xmlns="http://www.opengis.net/sld" + xmlns:se="http://www.opengis.net/se" + xmlns:ogc="http://www.opengis.net/ogc" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.1.0/StyledLayerDescriptor.xsd" + version="1.1.0"> + <NamedLayer> + <se:Name>sounding_results_areas</se:Name> + <UserStyle> + <se:Name>sounding_results_areas</se:Name> + <se:FeatureTypeStyle> + <se:Name>area_colours</se:Name> + <se:Description> + <se:Abstract> + FeatureTypeStyle defining colour classes for height attribute + </se:Abstract> + </se:Description> + {{ range . -}} + <se:Rule> + {{- if not .HasLow }} + <se:Name>≤ {{ printf "%g" .High }}</se:Name> + <ogc:Filter> + <ogc:PropertyIsLessThanOrEqualTo> + <ogc:PropertyName>height</ogc:PropertyName> + <ogc:Literal>{{ printf "%f" .High }}</ogc:Literal> + </ogc:PropertyIsLessThanOrEqualTo> + </ogc:Filter> + {{- else if not .HasHigh }} + <se:Name>> {{ printf "%g" .Low }}</se:Name> + <ogc:Filter> + <ogc:PropertyIsGreaterThanOrEqualTo> + <ogc:PropertyName>height</ogc:PropertyName> + <ogc:Literal>{{ printf "%f" .Low }}</ogc:Literal> + </ogc:PropertyIsGreaterThanOrEqualTo> + </ogc:Filter> + {{- else }} + <se:Name>≤ {{ printf "%g" .High }}</se:Name> + <ogc:Filter> + <ogc:And> + <ogc:PropertyIsGreaterThan> + <ogc:PropertyName>height</ogc:PropertyName> + <ogc:Literal>{{ printf "%f" .Low }}</ogc:Literal> + </ogc:PropertyIsGreaterThan> + <ogc:PropertyIsLessThanOrEqualTo> + <ogc:PropertyName>height</ogc:PropertyName> + <ogc:Literal>{{ printf "%f" .High }}</ogc:Literal> + </ogc:PropertyIsLessThanOrEqualTo> + </ogc:And> + </ogc:Filter> + {{- end }} + <se:PolygonSymbolizer> + <se:Fill> + <se:SvgParameter name="fill">{{ .Color }}</se:SvgParameter> + </se:Fill> + <se:Stroke> + <se:SvgParameter name="stroke">#404040</se:SvgParameter> + <se:SvgParameter name="stroke-width">0.5</se:SvgParameter> + </se:Stroke> + </se:PolygonSymbolizer> + </se:Rule> + {{ end }} + </se:FeatureTypeStyle> + <se:FeatureTypeStyle> + <se:Name>area_labels</se:Name> + <se:Description> + <se:Abstract> + FeatureTypeStyle for labels at colour areas + </se:Abstract> + </se:Description> + <se:Rule> + <!-- + <se:MaxScaleDenominator>5e3</se:MaxScaleDenominator> + --> + <se:TextSymbolizer> + <se:Label> + <ogc:PropertyName>height</ogc:PropertyName> + </se:Label> + <se:Font> + <se:SvgParameter name="font-family">Avenir</se:SvgParameter> + <se:SvgParameter name="font-family">Helvetica</se:SvgParameter> + <se:SvgParameter name="font-family">Arial</se:SvgParameter> + <se:SvgParameter name="font-family">sans-serif</se:SvgParameter> + </se:Font> + <se:LabelPlacement> + <se:LinePlacement> + <se:PerpendicularOffset>5</se:PerpendicularOffset> + </se:LinePlacement> + </se:LabelPlacement> + <se:Fill> + <se:SvgParameter name="fill">#070707</se:SvgParameter> + </se:Fill> + </se:TextSymbolizer> + </se:Rule> + </se:FeatureTypeStyle> + </UserStyle> + </NamedLayer> +</StyledLayerDescriptor>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/style-templates/upload-styles.sh Wed Sep 25 22:01:05 2019 +0200 @@ -0,0 +1,119 @@ +#!/bin/bash -e +# +# This is Free Software under GNU Affero General Public License v >= 3.0 +# without warranty, see README.md and license for details. +# +# SPDX-License-Identifier: AGPL-3.0-or-later +# License-Filename: LICENSES/AGPL-3.0.txt +# +# Copyright (C) 2019 by via donau +# – Österreichische Wasserstraßen-Gesellschaft mbH +# Software engineering by Intevation GmbH +# +# Author(s): +# * Sascha Wilde <wilde@intevation.de> + +ME=`basename "$0"` +BASEDIR=`dirname "$0"` + +usage() +{ + cat <<EOF +$ME [OPTION]... + +Upload map styles to gemma. + +Options: + -P, --g_port=GPORT connect to gemma server at GPORT. Default 8000. + -g, --g_host=GHOST connect to gemma server on GHOST. Default "localhost". + -u, --g_user=GUSER login to gemma as user GUSER. Default "sophie". + --g_pw=GPW password for GUSER. Default "so2Phie4". + --help display this help and exit + +EOF +} + +fatal() +{ + echo >&2 "$1" + exit 23 +} + +# Defaults: + +g_port=8000 +g_host="localhost" +g_user="sophie" +g_pw="so2Phie4" + +# Parse options: + +OPTS=`getopt \ + -l help,g_port:,g_host:,g_user:,g_pw: \ + -o P:g:u: -n "$ME" -- "$@"` +[ $? -eq 0 ] || { usage ; exit 1 ; } + +eval set -- "$OPTS" + +while true ; do + case "$1" in + --g_port|-P) + g_port="$2" + shift 2 + ;; + --g_host|-g) + g_host="$2" + shift 2 + ;; + --g_user|-u) + g_user="$2" + shift 2 + ;; + --g_pw) + g_pw="$2" + shift 2 + ;; + --help) + { usage ; exit 0 ; } + ;; + --) + shift + break + ;; + esac +done + +if [ $# != 0 ] ; then + { usage ; exit 23 ; } +fi + +# Main ------------------------------------------------------------ + +# Login to gemma server +login=$(curl -f -s -S -X POST \ + -d "{\"user\":\"${g_user}\",\"password\":\"${g_pw}\"}" \ + "http://${g_host}:${g_port}/api/login") +token=$(jq -r '.token' <<<"$login") +if [ -z "$token" ] +then + echo "could not login to gemma server" >&2 + exit 1 +fi + +roles=$(jq -r '.roles' <<<"$login") + +basedir=$( dirname $( realpath "${BASH_SOURCE[0]}" )) +datadir="${basedir}/." + +if jq -e 'any(. == "sys_admin")' <<<"$roles" > /dev/null +then + echo "== Configuring geoserver styles" >&2 + for style in $(basename -s .sld-template $(ls $datadir/*.sld-template)) + do + curl -f -s -S -H "X-Gemma-Auth:${token}" -X POST \ + -F style=@"${datadir}/${style}.sld-template" \ + "http://${g_host}:${g_port}/api/geo/style/${style}" + done +else + echo >&2 'Not authorized as sys_admin' +fi