0% found this document useful (0 votes)
68 views39 pages

GeoServer 2170 Webminar

GeoServer 2.17.0 was released in April 2020 with several new features and improvements. Key updates include support for rendering Mapbox GL styles on the server-side, improvements to label and symbol rendering, and faster startup times for GeoWebCache. The release also includes extensions for JSON-LD output and the FlatGeoBuf format.

Uploaded by

RSC Nabard
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
68 views39 pages

GeoServer 2170 Webminar

GeoServer 2.17.0 was released in April 2020 with several new features and improvements. Key updates include support for rendering Mapbox GL styles on the server-side, improvements to label and symbol rendering, and faster startup times for GeoWebCache. The release also includes extensions for JSON-LD output and the FlatGeoBuf format.

Uploaded by

RSC Nabard
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 39

What's new in Geoserver

2.17.0?

Andrea Aime
GeoSolutions
Quick overview
GeoServer 2.17.0
⚫ Released April 21st 2020 along with GeoTools 23.0
⚫ First release of the 2.17.x series
⚫ 2.17.x get 5 more releases
⚫ In "stable status" until September 2020, with some new features getting
backported
⚫ In "maintenance" status until March 2021, mostly with bug fixes

⚫ Can run on Java 8 or Java 11


GeoServer 2.17.0 - extensions
GeoServer 2.17.0 - community

https://build.geoserver.org/geoserver/2.17.x/community-latest/
Map rendering news
Mapbox GL Styles plugin
⚫ Can apply Mapbox GL styles server side
⚫ Graduated from community to extension status
⚫ Use cases:
⚫ Re-use existing Mapbox GL styles on the server side
⚫ Edit styles with external editor (e.g., Maputnik)
⚫ Setup a hybrid rendering solution
WMTS/PNG Classic OGC
client
GeoServer
WMTS/MVT

Mapbox
client
Mapbox
Data GL
Mapbox GL Styles plugin
⚫ Received significant QA work, 18 tickets resolved
⚫ Increased rendering fidelity (e.g. better match of
zoom related functions, improved font matching)
⚫ Increased behavior match (e.g. icons and labels
showing up together, or disappearing together)
Mapbox GL Styles plugin
⚫ Example rendering OpenMapTiles GL Bright
Map engine improvements
⚫ The Mapbox GL work required new functionality,
made available in all style languages.
⚫ Other functionalities added as well, independent
of the Mapbox GL work

⚫ In particular:
⚫ Background fill
⚫ Associate symbol with label, make them show either together, or
none
⚫ Automatic font shrinking to fit labels in polygons
⚫ Drape symbol along a line (vs just repeating it)
Background fill
⚫ Specify a "fill" at the SLD UserStyle level, fills the
background of the map
Offset label shield
⚫ Label shield functionality allows to center a label
and a background graphic.
⚫ Meant to be used for road shields
⚫ New "graphicPlacement" vendor option
⚫ "label" centers with the label
⚫ "independent" centers with the original point +
offset/anchor

⚫ Allows to setup point/label combos that are


stacked, and yet display as a single entity
Offset label shield
Label/icon disappearing due to
conflict resolution, road names
having higher priority

<VendorOption
name="graphicPlacement">
independent
</VendorOption>
Auto-shrink polygon labels
⚫ Make an effort to fit labels inside polygons
⚫ Shrink them down to a min target size, rather
than making them overflow or disappear
Auto-shrink polygon labels
<TextSymbolizer>
<Label>
<ogc:PropertyName>label</ogc:PropertyName>
</Label>
<Font>
<CssParameter name="font-family">Bitstream Vera Sans</CssParameter>
<CssParameter name="font-size">16</CssParameter>
</Font>
<LabelPlacement>
<PointPlacement>
<AnchorPoint>
<AnchorPointX>0.5</AnchorPointX>
<AnchorPointY>0.5</AnchorPointY>
</AnchorPoint>
</PointPlacement>
</LabelPlacement>
<VendorOption name="fontShrinkSizeMin">6</VendorOption>
<VendorOption name="goodnessOfFit">1</VendorOption>
</TextSymbolizer>
Drape line symbol along a line
⚫ LineSybolizer allow to repeat a symbol along a line
⚫ The result is normally dis-continuous at line
vertices

markAlongLine=true markAlongLine=false
Drape line symbol along a line
<?xml version="1.0"?>
<LineSymbolizer>
<Stroke>
<GraphicStroke>
<Graphic>
<Mark>
<WellKnownName>
wkt://LINESTRING (0 0, 0 -0.5, 0.5 -0.5, 0.5 0.5, 1 0.5, 1 0)
</WellKnownName>
<Stroke>
<CssParameter name="stroke">0xFF0000
</CssParameter>
<CssParameter name="stroke-width">2</CssParameter>
<CssParameter name="stroke-linecap">round</CssParameter>
</Stroke>
</Mark>
<Size>20</Size>
</Graphic>
</GraphicStroke>
</Stroke>
<VendorOption name="markAlongLine">true</VendorOption>
</LineSymbolizer>
Data sources and formats
Mbtiles + Vector tiles data source
⚫ A MBTiles file is a SQLite tile storage
⚫ One main table called "tiles"

⚫ One support table called "metadata"

⚫ Limited to the web Mercator tile matrix set

CREATE TABLE tiles (zoom_level integer, tile_column


integer, tile_row integer, tile_data blob);
CREATE TABLE metadata (name text, value text);

⚫ Tiles can be filled with images, but also with


Mapbox Vector Tiles (MVT)
⚫ The metadata table provides, among others, a
schema for them
MBTiles + Vector tiles data source
⚫ Multiple layers contained in a single tile
⚫ Polygons/lines split among tiles
⚫ Clients typically
don't stitch back
data (expensive)

⚫ Each tile contains a


buffer of extra
data around to
avoid rendering
artifacts
https://blog.cyclemap.link/2020-01-25-tilebuffer/
MBTiles + Vector tiles data source
⚫ The store provides access to the layers separately
(usual data model for GeoServer)
⚫ Rendering OpenMapTiles data + MB GL Styles
WMS cascading improved
⚫ Choose which remote
styles to use and expose

⚫ Choose format used for


cascading

⚫ Limit cascading to a scale


range and declared
BBOX
JSON-LD community module
⚫ Generate JSON-LD via templates
{
"@context": {
"gsp": "http://www.opengis.net/ont/geosparql#",
"sf": "http://www.opengis.net/ont/sf#",
"schema": "https://schema.org/",
"dc": "http://purl.org/dc/terms/",
"Feature": "gsp:Feature",
"FeatureCollection": "schema:Collection",
"Point": "sf:Point",
"wkt": "gsp:asWKT",
"features": {
"@container": "@set",
"@id": "schema:hasPart"
},
"geometry": "sf:geometry",
"description": "dc:description",
"title": "dc:title",
"name": "schema:name"
},
"type": "FeatureCollection",
"features": [
{
"$source": "gsml:MappedFeature"
},

→ Continued in next slide


JSON-LD community module
{
"@id": "${@id}",
"@type": [
"Feature",
"gsml:MappedFeature",
"http://vocabulary.odm2.org/samplingfeaturetype/mappedFeature"
],
"name": "${gml:name}",
"gsml:positionalAccuracy": {
"type": "gsml:CGI_NumericValue",
"value": "${gsml:positionalAccuracy/gsml:CGI_NumericValue/gsml:principalValue}"
},
"gsml:GeologicUnit": {
"$source": "gsml:specification/gsml:GeologicUnit",
"@id": "${@id}",
"description": "${gml:description}",
"gsml:geologicUnitType": "urn:ogc:def:nil:OGC::unknown",
"gsml:composition": [
{
"$source": "gsml:composition"
},
{
"gsml:compositionPart": [
{
"$source": "gsml:CompositionPart"
},
{
"gsml:role": {
"value": "${gsml:role}",
"@codeSpace": "urn:cgi:classifierScheme:Example:CompositionPartRole"
},
……….
Service news
OGC API – Marching on!
⚫ The OGC API community
modules keep
improving:

⚫ Updated OGC API -


Features API to latest
spec
⚫ Added filtering and
CRS extensions
⚫ OGC API – Tiles
⚫ OGC API – Styles
FlatGeoBuf community module
⚫ FlatGeoBuf is "a performant binary encoding for
geographic data based on flatbuffers …"
⚫ WFS (OGC API – Features) output format
⚫ New community module
⚫ Performance comparison, shapefile as reference
GeoWebCache
Faster startup
⚫ 30% faster GWC layer loading during startup
⚫ Improved CPU consumption

⚫ Test loading 1 million layers, with 1 million


cached layers associated, over the past releases
Version Released Startup GWC_startup
2.14.4 2019-06-13 9m 5s 39s
2.15.0 2019-02-27 <killed after 2 hours>
2.15.2 2019-06-28 6m 45s 40s
2.16.0 2019-09-18 6m 05s 34s
2.16.2 2020-01-20 6m 45s 34s
2.17.0 2020-04-19 6m 33s 22s

Data courtesy of Gabriel Roldan


Faster tile layer listing
⚫ The tile layer page could get pretty slow
⚫ Sped up by orders of magnitude in 2.17.0
Configure XYZ layout on disk
⚫ GWC disk layout is optimized to keep directory
listings short, but cannot be used to setup a
static tile cache

⚫ In 2.17.0 one can create


a ZYX/Z(-Y)X layout,
seed it, and move to
static file serving
More tolerant seed
⚫ Traditionally GWC seeding threads would stop at
the first map building error encountered. Now
tolerance can be configured on a per job basis.
Configuration improvements
Resource browser extension
⚫ Access contents of the data directory directly
from the GUI
⚫ Useful for remote servers, mandatory if one is
not storing the config on the file system
Edit security from resource pages
⚫ Alternative focus on the single resource, rather
than the full set of security rules
Track last resource change
⚫ Ever wondered if
"something
changed"?
⚫ Now you can check.
Custom dimensions for vector layers
⚫ WMS dimension
⚫ Time

⚫ Elevation

⚫ Custom

⚫ Custom used to be
supported by raster data
only

⚫ Now supported by vector


data too
Enabled/advertised for Groups
⚫ Enabled/advertised controls were available for
layers only
⚫ Now available for layer groups too
That’s all!

https://www.geosolutionsgroup.com/contacts/

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy