Slide 1

Slide 1 text

GeoServer Feature FRENZY

Slide 2

Slide 2 text

Why this Talk? ● State of GeoServer 2.21 talks hit what is New! ● This talk hits what is beloved, amazing, or unexpected! ● 20 min talk Are you readyyyy?

Slide 3

Slide 3 text

3 ready

Slide 4

Slide 4 text

2 set

Slide 5

Slide 5 text

1 go!

Slide 6

Slide 6 text

1000 feet view

Slide 7

Slide 7 text

GeoServer WFS WMS PostGIS Oracle H2 DB2 SQL Server GeoPackage SQL Server MySql Spatialite MongoDB Shapefile ---------- ---------- --------- ---------- ---------- ---------- --------- ---------- ---------- ---------- --------- ---------- ArcSDE WFS PNG, GIF JPEG TIFF, GeoTIFF SVG, PDF KML/KMZ Shapefile GML2 GML3 GeoRSS GeoJSON CSV/XLS Raw vector data Servers Styled maps DBMS Vector files WCS GeoTIFF WMS ArcGrid Img+world Mosaic MrSID JPEG 2000 ECW,Pyramid, Oracle GeoRaster, PostGIS Raster, NetCDF Raster files Raw raster data GeoTIFF ArcGrid GTopo30 Img+World WMTS, TMS, WMS-C KML superoverlays Google maps tiles OGC tiles OSGEO tiles KML WPS CSW

Slide 8

Slide 8 text

Many of these are provided by extensions

Slide 9

Slide 9 text

Configuration

Slide 10

Slide 10 text

GUI: GeoServer for point & clickers

Slide 11

Slide 11 text

GUI: GeoServer for point & clickers

Slide 12

Slide 12 text

GUI: GeoServer for point & clickers

Slide 13

Slide 13 text

Style editor

Slide 14

Slide 14 text

But you’re not limited to point and click, REST!

Slide 15

Slide 15 text

Need to mass-configure layers? Importer! GUI and REST

Slide 16

Slide 16 text

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 ● Async 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

Slide 17

Slide 17 text

Vector data sources

Slide 18

Slide 18 text

Files files, many little files (OGR)

Slide 19

Slide 19 text

SQL

Slide 20

Slide 20 text

Everybody loves curves ● Read curved geometries from Oracle and PostGIS, paint them, GML output them, linearize everywhere else

Slide 21

Slide 21 text

SQL-Views GeoServer WMS/WFS ... DB2 Any DB ... Run query as layer source

Slide 22

Slide 22 text

Parametric SQL Views GeoServer WMS/WFS ... DBMS Any DB ... Inject params from request Run query as layer source

Slide 23

Slide 23 text

NoSQL!

Slide 24

Slide 24 text

Feature Type Customization and Filtering

Slide 25

Slide 25 text

Distributed!

Slide 26

Slide 26 text

Raster data sources

Slide 27

Slide 27 text

Run of the mill Old but gold! Simple Mosaic ArcGrid Fully configured Mosaic (custom schemas, attributes, filtering, sorting, custom storage)

Slide 28

Slide 28 text

Going native GDAL 3.x (NITF files) Fast JPEG2000 libdeflate Read/Write TIFFs Write JPEGs maps Read/Write TIFFs

Slide 29

Slide 29 text

Maps, maps everywhere!

Slide 30

Slide 30 text

Basic maps

Slide 31

Slide 31 text

Samples from IGN (using SLD)

Slide 32

Slide 32 text

OSM? Yes OSM! (With CSS this time)

Slide 33

Slide 33 text

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 for smooth reprojection

Slide 34

Slide 34 text

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”

Slide 35

Slide 35 text

Integrated tiles cache

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

Deliver data

Slide 39

Slide 39 text

WFS and WCS ● Download vector data ● Filter, reproject, join, page ● Download raster data ● WCS 2.0, a protocol humans can understand

Slide 40

Slide 40 text

CQL POP_EST <= 5000000 AND POP_EST >100000 A lightweight “domain specific language”: ● CQL - is a standard from OGC Catalog ● E-CQL - extends this basic concept to do everything Filter can do

Slide 41

Slide 41 text

CQL POP_EST <= 5000000 AND POP_EST >100000 A lightweight “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

Slide 42

Slide 42 text

Editing data since 2003 (the original superpower) WFS-T PostGIS Oracle Shapefile SQLServer ...

Slide 43

Slide 43 text

App Schema

Slide 44

Slide 44 text

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 nighmares will be made of complex GeoJSON instead!

Slide 45

Slide 45 text

INSPIRE application/vnd.iso.19139+xml eng eng eng

Slide 46

Slide 46 text

Process!

Slide 47

Slide 47 text

● Analyze, publish, transform on the fly, access local data Integrated WPS

Slide 48

Slide 48 text

Think small ● Small is useful ● BBOX for filtered datasets ● Aggregation processes, provides datasets for building charts (group and count) ● Clip and ship ● Build animations

Slide 49

Slide 49 text

Think big! ● Start remote processing nodes, track their progress ● Register the result as a GeoServer layer for preview before download

Slide 50

Slide 50 text

Rendering transformations: process and render at the same time

Slide 51

Slide 51 text

On the fly contour extraction from styles

Slide 52

Slide 52 text

Jiffle and rendering transformations nir = src[7]; vir = src[3]; dest = (nir-vir)/(nir+vir); Map Algebra at your fingertips On the fly, or batch with WPS

Slide 53

Slide 53 text

Extract wind barbs from 2 bands raster data u v u v

Slide 54

Slide 54 text

Extract wind barbs from 2 bands raster data data < emisphere True interpolation InterpolationBilinear scale 8

Slide 55

Slide 55 text

Extract wind barbs from 2 bands raster data windbarbs://default( u u v v )[m/s]?emisphere= emisphere 000000 1

Slide 56

Slide 56 text

HeatMap Transform Heatmaps title: Heatmap feature-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]

Slide 57

Slide 57 text

And more Discrete point interpolation Point stacker

Slide 58

Slide 58 text

Find your style (language)

Slide 59

Slide 59 text

SLD 1.0 and 1.1

Slide 60

Slide 60 text

Geo-CSS

Slide 61

Slide 61 text

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, } } ] }

Slide 62

Slide 62 text

Convert around SLD 1.0 SLD 1.1 GeoCSS MBStyle YSLD

Slide 63

Slide 63 text

SLD Named Layers (Style Groups)

Slide 64

Slide 64 text

Great for SLD and YSLD Use with MapBox style to define once for GeoServer and OpenLayers Style several layers together into a single map GetMap SLD=” Add Style Group...

Slide 65

Slide 65 text

Styling Reference, Cookbooks, Workshops

Slide 66

Slide 66 text

windbarbs:// Making your Mark square circle triangle star square x “standard” shape:// extshape:// wkt:// ttf://

Slide 67

Slide 67 text

Multidimensional data Weather or not you are ready

Slide 68

Slide 68 text

Multidimensional data, in and out! ● Time, elevation in WMS, WMTS and WCS

Slide 69

Slide 69 text

Multidimensional data formats GRIB

Slide 70

Slide 70 text

Temperature, currents, wind, pressure, time and elevation? We got you covered! Meteorology ready!

Slide 71

Slide 71 text

Security Stop or I will say Stop Again

Slide 72

Slide 72 text

Authentication and Authorization Fully pluggable!

Slide 73

Slide 73 text

Authentication BASIC DIGEST LDAP and Active Directory Database Github Google GeoNode OpenID connect X.509 J2EE AuthKey

Slide 74

Slide 74 text

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

Slide 75

Slide 75 text

Reliability

Slide 76

Slide 76 text

Quality Assurance: JUnit (unit and integration tests) ● Build with Tests takes 15 mins ● Build with Tests disabled takes 2 mins ● Thousands of tests

Slide 77

Slide 77 text

Quality Assurance: Continuous Build Box

Slide 78

Slide 78 text

Quality Assurance: Manual Code Review

Slide 79

Slide 79 text

Quality Assurance: PR automatic checks ● Static code checks ○ PMD ○ CheckStyle ○ ErrorProne ○ SortPom ○ Deprecated checks ● One failure above marks the build red

Slide 80

Slide 80 text

And all of this is… Free!?

Slide 81

Slide 81 text

Open Source Free as in Freedom: ● GPL License

Slide 82

Slide 82 text

Cost Free Free as in Beer: ● Download now to $0! ● This weeks special 10% off $0!

Slide 83

Slide 83 text

Doesn’t that make you want to contribute?

Slide 84

Slide 84 text

“I can code and want to contribute”

Slide 85

Slide 85 text

“I have money and want to donate a new feature”

Slide 86

Slide 86 text

“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).

Slide 87

Slide 87 text

“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

Slide 88

Slide 88 text

“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

Slide 89

Slide 89 text

Question and Answer Thanks!