GeoServer Feature FRENZY - Zenodo
-
Upload
khangminh22 -
Category
Documents
-
view
1 -
download
0
Transcript of GeoServer Feature FRENZY - Zenodo
Why this Talk?
● State of GeoServer 2.16 talks hit what is New!● This talk hits what is beloved, amazing, or unexpected!● 20 min talk
Are you readyyyy?
Ge
oS
erv
er
WFS
WMS
PostGISOracle
H2DB2
SQL ServerGeoPackage
SQL ServerMySql
SpatialiteMongoDB
Shapefile ---------------------------------------
---------------------------------------
---------------------------------------
ArcSDEWFS
PNG, GIFJPEGTIFF, GeoTIFFSVG, PDFKML/KMZ
ShapefileGML2GML3GeoRSSGeoJSONCSV/XLS
Raw vectordata
Servers
Styled maps
DBMS
Vector files
WCSGeoTIFF
WMSArcGrid
Img+worldMosaicMrSID
JPEG 2000ECW,Pyramid, Oracle
GeoRaster, PostGIS Raster, NetCDF Raster files
Raw rasterdata
GeoTIFFArcGridGTopo30Img+World
WMTS,TMS,
WMS-C
KML superoverlaysGoogle maps tilesOGC tilesOSGEO tiles
KML
WPS
CSW
Bit of safety: backup and restore extension
● Save the configuration to a zip file (not the data!)
● Restore later, in the same or different environment
● UI to run backup and restore● Asynch operations● REST Interface● During backup the configuration is read only● During restore it’s fully locked● Support “dry run” to for errors prior to restore
Everybody loves curves● Read curved geometries from Oracle and PostGIS, paint them, GML output
them, linearize everywhere else
Parametric SQL Views
GeoServer WMS/WFS
...
DBMS
Any DB ...
Inje
ct p
aram
s fr
om r
eque
st
Run query as layer source
Run of the mill
Old but gold!Simple Mosaic
ArcGrid
Fully configured Mosaic (custom schemas, attributes,
filtering, sorting, custom storage)
GeoServer handles dateline, projection limits, high accuracy projection grids, and so on
Reproject with confidence
Dateline wrap Cut on UTM Cut on polar stereographic
Densify forsmooth reprojection
Only want to play with MVT? Ok!
● Extension for publishing vector tiles● Great solution for modern High
Definition Screens● Client side styling● Use for GeoServer for “MapBox
without MapBox”● Also to do “MapBox with OGC fallback”
GeoWebCache
● Tile caching application● Can cache tiles in PNG/JPG/KML/
MVT/GeoJSON● Can store tiles in file
system/SQLite/S3/Azure● Supports WMS-C, TMS, WMTS
Runs integrated in GeoServer
● Configuration integration○ Configure layer once○ Setup via GUI
● Security integration○ Configure security once○ Limited checks (only layer access, no
attributes, areas and alphanumeric filters)
● Event integration○ Change styles, tiles dropped○ WFS-T transaction, tiles dropped
● Service integration○ Direct integration○ Intercept tiled requests from WMS and
uses cache for them
WFS and WCS
● Download vector data● Filter, reproject, join, page
● Download raster data● WCS 2.0, a protocol humans can
understand
CQL
POP_EST <= 5000000 AND POP_EST >100000
A light weight “domain specific language”:
● CQL - is a standard from OGC Catalog
● E-CQL - extends this basic concept to do everything Filter can do
CQL
POP_EST <= 5000000 AND POP_EST >100000
A light weight “domain specific language”:
● CQL - is a standard from OGC Catalog
● E-CQL - extends this basic concept to do everything Filter can do
In GeoServer CQL can filter raster data too… in particular, mosaic images with associated attributes
Complex GML making your eyes bleed?{ "type": "FeatureCollection", "features": [ { "type": "Feature", "id": "0001000001", "geometry": { "type": "Point", "coordinates": [51.0684, 1.4298] }, "properties": { "@featureType": "Borehole", "identifier": { "value": "BSS000AAAA", "@codeSpace": "http://www.ietf.org/rfc/rfc2616" }, "bholeHeadworks": [ { "type": "Feature", "geometry": { "type": "Point", "coordinates": [51.0684, 1.4298] }, "properties": { "@featureType": "BoreCollar", "collarElevation": { "value": -32,
● No worries● Your 2020 nightmares will be made of
complex GeoJSON instead!
INSPIRE<inspire_vs:ExtendedCapabilities> <inspire_common:MetadataUrl xsi:type="inspire_common:resourceLocatorType"> <inspire_common:URL/> <inspire_common:MediaType>application/vnd.iso.19139+xml</inspire_common:MediaType> </inspire_common:MetadataUrl> <inspire_common:SupportedLanguages xsi:type="inspire_common:supportedLanguagesType"> <inspire_common:DefaultLanguage> <inspire_common:Language>eng</inspire_common:Language> </inspire_common:DefaultLanguage> <inspire_common:SupportedLanguage> <inspire_common:Language>eng</inspire_common:Language> </inspire_common:SupportedLanguage> </inspire_common:SupportedLanguages> <inspire_common:ResponseLanguage> <inspire_common:Language>eng</inspire_common:Language> </inspire_common:ResponseLanguage></inspire_vs:ExtendedCapabilities>
Think small
● Small is useful● BBOX for filtered datasets● Aggregation processes, provides
datasets for building charts (group and count)
● Clip and ship● Build animations
Think big!
● Start remote processing nodes, track their progress
● Register the result as a GeoServer layer for preview before download
Jiffle and rendering transformations
nir = src[7];vir = src[3];dest = (nir-vir)/(nir+vir);
Map Algebra at your fingertipsOn the fly, or batch with WPS
Extract wind barbs from 2 bands raster data <FeatureTypeStyle> <Transformation> <ogc:Function name="ras:RasterAsPointCollection"> <ogc:Function name="parameter"> <ogc:Literal>data</ogc:Literal> </ogc:Function> <<ogc:Function name="parameter"> <ogc:Literal>emisphere</ogc:Literal> <ogc:Literal>True</ogc:Literal> </ogc:Function> <ogc:Function name="parameter"> <ogc:Literal>interpolation</ogc:Literal> <ogc:Literal>InterpolationBilinear</ogc:Literal> </ogc:Function> <ogc:Function name="parameter"> <ogc:Literal>scale</ogc:Literal> <ogc:Literal>8</ogc:Literal> </ogc:Function> </ogc:Function> </Transformation>
Extract wind barbs from 2 bands raster data <Mark> <WellKnownName> windbarbs://default( <ogc:Function name="sqrt"> <ogc:Add> <ogc:Mul> <ogc:PropertyName>u</ogc:PropertyName> <ogc:PropertyName>u</ogc:PropertyName> </ogc:Mul> <ogc:Mul> <ogc:PropertyName>v</ogc:PropertyName> <ogc:PropertyName>v</ogc:PropertyName> </ogc:Mul> </ogc:Add> </ogc:Function> )[m/s]?emisphere= <ogc:PropertyName>emisphere</ogc:PropertyName> </WellKnownName> <Stroke> <CssParameter name="stroke">000000</CssParameter> <CssParameter name="stroke-width">1</CssParameter> </Stroke> </Mark>
HeatMap Transform
Heatmaps
title: Heatmapfeature-styles:- transform: name: vec:Heatmap params: weightAttr: pop2000 radiusPixels: 100 pixelsPerCell: 10 rules: - symbolizers: - raster: opacity: 0.6 color-map: type: ramp entries: - ['#FFFFFF',0,0.0,nodata] - ['#4444FF',1,0.1,nodata] - ['#FF0000',1,0.5,values] - ['#FFFF00',1,1.0,values]
YSLD MapBox GL
name: style_example
title: An example of YSLD styling
abstract: Used in the User Manual of GeoServer
feature-styles:
- rules:
- name: all
title: Every feature will be styled this way
symbolizers:
- polygon:
fill-color: '#808080'
fill-opacity: 0.5
stroke-color: '#000000'
stroke-opacity: 0.75
{ "version": 8, "layers": [ { "id": "default_point", "type": "circle", "source": "test-source", "source-layer": "place_label", "layout": { "visibility": "visible" }, "paint": { "circle-color": "#FF0000", "circle-opacity": 1, "circle-radius": 6, "circle-stroke-opacity": 0, } } ]}
Help needed! Help needed!
Great for SLD and YSLD
Use with MapBox style to define once for GeoServer and OpenLayers
Style several layers together into a single mapGetMap SLD=”<URL> Add Style Group...
windbarbs://
Making your Mark
square
circle
triangle
star
square
x
“standard” shape:// extshape:// wkt:// ttf://
Authentication
BASIC
DIGEST
LDAPand
Active Directory
Database
GithubGoogle
GeoNodeOpenID connect
X.509
J2EE
AuthKey
Authorization
● Built-in
● Simple● Layer based● Read/Write/Admin
● GeoFence
● Sophisticated rules (“conditions on this layer while being accessed by WFS GetFeature)
● Restrict access by attribute, alphanumeric filter, area
Quality Assurance: JUnit (unit and integration tests)
● Build with Tests takes 15 mins● Build with Tests disabled takes 2 mins● Thousands of tests
Quality Assurance: PR automatic checks
● Static code checks○ PMD○ CheckStyle○ ErrorProne○ Deprecated method
checks
● One failure above marks the build red
“I have money and want to donate”
OSGeo Foundation Project
● Donate via PayPAL
Funding is welcome at any time!
PSC occasionally does special call for financial support (usually for maintenance activities).
● GSIP-176 CITE Automation
“I have money want invoice for financial support”
OSGeo Foundation Project
● Contact [email protected] for invoice
Funding is welcome at any time!
PSC occasionally does special call for financial support (usually for maintenance activities).
● GSIP-176 CITE Automation
“I can’t code nor have money… want to contribute!”
● Yes please!!!● Community project includes you
● Documentation improvements, Tutorials!● Answering other users questions on the
user list● Hands on development is not all coding
● Checking tickets can be reproduced● When we make RC releases, try them
out, hunt for regressions!● “bug stomp” and confirm fixes in real time