Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GeoServer Feature Frenzy (FOSS4G 2022 Edition)

GeoServer Feature Frenzy (FOSS4G 2022 Edition)

GeoServer is a web service for publishing your geospatial data using industry standards for vector, raster and mapping. It powers a number of open source projects like GeoNode and geOrchestra and it is widely used throughout the world by organizations to manage and disseminate data at scale.
What can you do with GeoServer? This visual guide introduces some of the best features of GeoServer, to help you publish geospatial data and make it look great! GeoServer has grown into an amazing, capable and diverse program - with a feature list spread over years of release announcements, presentations, and mailing list archives.
This presentation provides:

A whirl-wind tour of GeoServer and everything it can do today.
A visual guide to some of the best features of GeoServer.
Our favorite tricks we are proud of!

Are you just getting started with GeoServer, or considering it for the first time? Attend this talk and prioritize what you want to look into first. Are you an expert user who has been running GeoServer since version 1.0? Attend this talk and see what tricks and optimizations you have been missing out on.

Simone Giannecchini
PRO

August 31, 2022
Tweet

More Decks by Simone Giannecchini

Other Decks in Technology

Transcript

  1. GeoServer Feature
    FRENZY

    View Slide

  2. 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?

    View Slide

  3. 3
    ready

    View Slide

  4. 2
    set

    View Slide

  5. 1
    go!

    View Slide

  6. 1000 feet view

    View Slide

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

    View Slide

  8. Many of these are provided by extensions

    View Slide

  9. Configuration

    View Slide

  10. GUI: GeoServer for point & clickers

    View Slide

  11. GUI: GeoServer for point & clickers

    View Slide

  12. GUI: GeoServer for point & clickers

    View Slide

  13. Style editor

    View Slide

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

    View Slide

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

    View Slide

  16. 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

    View Slide

  17. Vector data sources

    View Slide

  18. Files files, many little files
    (OGR)

    View Slide

  19. SQL

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  23. NoSQL!

    View Slide

  24. Feature Type Customization and Filtering

    View Slide

  25. Distributed!

    View Slide

  26. Raster data sources

    View Slide

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

    View Slide

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

    View Slide

  29. Maps, maps
    everywhere!

    View Slide

  30. Basic maps

    View Slide

  31. Samples from IGN (using SLD)

    View Slide

  32. OSM? Yes OSM! (With CSS this time)

    View Slide

  33. 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

    View Slide

  34. 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”

    View Slide

  35. Integrated tiles cache

    View Slide

  36. 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

    View Slide

  37. 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

    View Slide

  38. Deliver data

    View Slide

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

    View Slide

  40. 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

    View Slide

  41. 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

    View Slide

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

    View Slide

  43. App Schema

    View Slide

  44. 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!

    View Slide

  45. INSPIRE



    application/vnd.iso.19139+xml



    eng


    eng



    eng


    View Slide

  46. Process!

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  50. Rendering
    transformations:
    process and render at
    the same time

    View Slide

  51. On the fly contour extraction from styles

    View Slide

  52. 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

    View Slide

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

    View Slide

  54. Extract wind barbs from 2 bands raster data




    data

    <
    emisphere
    True


    interpolation
    InterpolationBilinear


    scale
    8



    View Slide

  55. Extract wind barbs from 2 bands raster data


    windbarbs://default(



    u
    u


    v
    v



    )[m/s]?emisphere=
    emisphere


    000000
    1


    View Slide

  56. 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]

    View Slide

  57. And more
    Discrete point interpolation Point stacker

    View Slide

  58. Find your style
    (language)

    View Slide

  59. SLD 1.0 and 1.1

    View Slide

  60. Geo-CSS

    View Slide

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

    View Slide

  62. Convert around
    SLD 1.0
    SLD 1.1
    GeoCSS
    MBStyle YSLD

    View Slide

  63. SLD Named Layers (Style Groups)

    View Slide

  64. 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...

    View Slide

  65. Styling Reference, Cookbooks, Workshops

    View Slide

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

    View Slide

  67. Multidimensional data
    Weather or not you are ready

    View Slide

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

    View Slide

  69. Multidimensional data formats
    GRIB

    View Slide

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

    View Slide

  71. Security
    Stop or I will say Stop Again

    View Slide

  72. Authentication and Authorization
    Fully pluggable!

    View Slide

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

    View Slide

  74. 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

    View Slide

  75. Reliability

    View Slide

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

    View Slide

  77. Quality Assurance: Continuous Build Box

    View Slide

  78. Quality Assurance: Manual Code Review

    View Slide

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

    View Slide

  80. And all of this is…
    Free!?

    View Slide

  81. Open Source
    Free as in Freedom:
    ● GPL License

    View Slide

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

    View Slide

  83. Doesn’t that make you
    want to contribute?

    View Slide

  84. “I can code and want to contribute”

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  89. Question and Answer
    Thanks!

    View Slide