We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

GeoServer Feature Frenzy

00:00

Formal Metadata

Title
GeoServer Feature Frenzy
Title of Series
Number of Parts
351
Author
License
CC Attribution 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language
Production Year2022

Content Metadata

Subject Area
Genre
Abstract
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 - attend this presentation for: - A whirl-wind tour of GeoServer and everything it can do today; - A visual guide to some of the best features of GeoServer; - Our favourite tricks we are proud of! New to GeoServer - attend this talk and prioritize what you want to look into first. Expert users - attend this talk and see what tricks and optimizations you have been missing out on.
Keywords
State of matterState of matterGeometryServer (computing)Lecture/ConferenceComputer animation
Computer fileOpen sourceView (database)Service (economics)Function (mathematics)Slide ruleComputer animation
File formatExtension (kinesiology)Core dumpConfiguration spaceOpen sourceBlogInformationCache (computing)AuthenticationInformation securityMiniDiscGroup actionPasswordService (economics)Coordinate systemPhysical systemAsynchronous Transfer ModeLocal GroupBound stateDefault (computer science)Graphical user interfaceElectronic program guidePolygonGraphics softwarePressureCodierung <Programmierung>Revision controlMetreAttribute grammarWebsiteDatabaseVector spaceSineComputer fileDirectory serviceRaster graphicsTable (information)OracleDevice driverInstallation artSQL Server 7.0MassMagneto-optical driveSystem administratorServer (computing)Photographic mosaicData storage deviceCellular automatonTurbo-CodeWritingSoftwareSample (statistics)Chemical polarityAxonometric projectionPopulation densityLimit (category theory)Unified threat managementMean value theoremClient (computing)Communications protocolDigital filterWeb pageTime domainLatent heatFormal languageStandard deviationLibrary catalogComplex (psychology)Point (geometry)Demo (music)Uniform resource locatorData typeLink (knot theory)Process (computing)DisintegrationSinguläres IntegralLocal ringCone penetration testoutputVirtual machineTrailVertex (graph theory)Mixed realityDatabaseSound effectWeb 2.0Functional (mathematics)Service (economics)outputFile formatCommunications protocolVector spaceView (database)Interactive televisionExtension (kinesiology)AdditionElasticity (physics)Computer fileComputer configurationMathematical analysisGeometryServer (computing)Cache (computing)State of matterFormal languageCurvePercolation theoryProblemorientierte ProgrammierspracheType theoryTesselationCore dumpQuery languagePlug-in (computing)Database transactionTable (information)Mobile WebComplex (psychology)Operator (mathematics)InformationFeedbackExpressionGraphics softwareOpen sourceMathematicsContent (media)MassMobile appBackupTurbo-CodeBuildingRepresentational state transferConfiguration spacePhysical systemDifferent (Kate Ryan album)Set (mathematics)Point (geometry)TouchscreenShape (magazine)Sampling (statistics)Computer fontMappingRegulärer Ausdruck <Textverarbeitung>Photographic mosaicCartesian coordinate systemConnected spaceIntegrated development environmentData storage deviceFunction (mathematics)Projective planeLevel (video gaming)Presentation of a groupDirectory serviceRepository (publishing)Diallyl disulfideCloud computingCombinational logicBitProcess (computing)Line (geometry)Revision controlParameter (computer programming)Template (C++)Game theoryProxy serverTerm (mathematics)Point cloudSlide ruleReal numberResultantRemote procedure callLipschitz-StetigkeitModule (mathematics)Limit (category theory)Bridging (networking)Data compressionWordRaster graphicsGoodness of fitEntire functionGraphical user interfaceComputer animationSource code
Singuläres IntegralComputer fontPrice indexRadiusActive contour modelTetraederComa BerenicesTransformation (genetics)AlgebraStapeldateiPoint (geometry)Discrete groupInterpolationCodierung <Programmierung>Open setLocal GroupVolumenvisualisierungRing (mathematics)Monad (category theory)Control flowProcess (computing)Airy functionOpen sourceCongruence subgroupOverlay-NetzMechatronicsCodeVector spaceSheaf (mathematics)Set (mathematics)PressureCross-site scriptingInformation securityAuthenticationAuthorizationConfiguration spaceServer (computing)Form (programming)EmailDigital filterDatabaseDirectory serviceSoftware testingExecution unitError messageFreewareMappingSquare numberSoftware testingDiscrete groupFunctional (mathematics)Server (computing)Point (geometry)Projective planeInformation securityCuboidMultiplication signNeuroinformatikCodeArtistic renderingLevel (video gaming)Computer configurationDependent and independent variablesCalculationGroup actionBitAreaMusical ensembleLatent heatOpen sourceCircleTerm (mathematics)File formatDatabaseDimensional analysisComputer fileDirectory serviceGeometryAdditionAuthorizationParameter (computer programming)Real numberEuler anglesSoftware developerInformationProcess (computing)Line (geometry)1 (number)AuthenticationRootRight anglePublic key certificateInterface (computing)Function (mathematics)Translation (relic)Cartesian coordinate systemActive contour modelClient (computing)Vector spaceSet (mathematics)TesselationInterpolationSelf-organizationMobile appEndliche ModelltheorieAlgebraBenutzerhandbuchWeb 2.0Web pageDifferent (Kate Ryan album)Subject indexingINTEGRALUnit testingEntire functionExecution unitComputer animation
Core dumpExtension (kinesiology)ChecklistSoftware testingExecution unitMoment (mathematics)Message passingProcess (computing)Ring (mathematics)Repository (publishing)Template (C++)MathematicsDirectory serviceCodeCoding theoryProjective planeSoftware developerSoftware testingComputer fileCodeOnline helpElectronic mailing listChecklistService (economics)Translation (relic)FeedbackTouch typing1 (number)Internet service providerMusical ensembleComputer animation
Transcript: English(auto-generated)
Yeah, we just did the state of GeoServer, which is kind of what's new for GeoServer, what we've done this year, and honestly, this talk is really about what's actually good in GeoServer, what we found cool to implement, yeah, things that were fun and exciting. Are you ready?
I know it's just after the social night, but yeah, we'll try and keep this up. So this is the 10,000 feet view, all the data sources, the services, and the outputs. As you can see, there is a lot going on. We even don't have the OGC API features and all the other OGC APIs in here, but the slide is already overflowing.
Many of these functionalities are provided by extensions, so GeoServer has a core functionality, and then you have a bunch of plugins that you can download to add more. Let's have a look, topic by topic, about what you can do. One of the most popular things about GeoServer is you can actually configure it. You don't have to wander into XML files like the bad old days, there's a UI, and
you can poke away and stuff happens. Yeah, still poking, stuff is still happening, we're publishing layers, yay us. One thing that's really nice is that there's an interactive style editor, so you can actually see the style on the screen, change settings and fonts and so on, and get interactive
feedback. But you're not limited to just point and click, there's also a REST API if you happen to want to automate or if you're making tools that want to configure GeoServer remotely. And if you need to mass configure layers, there's actually an extension called Importer, which lets you, I don't know, point at an entire PostGIS database or point at a directory
of spatial files and publish the whole thing. And it's got a GUI and it's got a REST API. There's also a backup and restore community module that allows you to backup the data directory, the configuration and restore it either later or in a different environment, possibly in combination with the environment parameterization so that you can change database
connections, users and whatnot, environment by environment. It works asynchronously, it has a UI, it has a REST interface. So let's move on to vector data stores. We get lots of kind of different file supports, shape files, geo packages, there's an extension
that lets you bridge over to GDAL and support any of the formats that are available there. Databases, we like them. If you have a spatial database, you're already ahead of the game. PostGIS, Oracle, Oracle is a killer feature for folks. Teradata is kind of on the way out. MySQL, SAP, SQL Server, all kinds of things.
We also have cloud services, does that happen later or that slide just doesn't exist? Most of the cloud services are actually compatible with the desktop version, let's say the server versions of the services so you get support for PostgreSQL and others in the cloud, MySQL,
and it just works. Also things like GeoMESA and so forth. Curves, if your geometries happen to, I don't know, not be on the straight and narrow, we're willing to support them. So Oracle, PostGIS and so on supports Curves and we're happy to do that. There's an SQL view functionality which isn't really an SQL view. If you have an SQL view in your database, you can publish that.
But there's a feature in GeoServer called SQL view where you can type in a query and get the results published as a layer. You can actually even change your mind about what the SQL view is doing and parameterize it, feed it in values on the fly and have different queries and joins performed.
No SQL, if you're against the whole SQL, we've got Solr and Elasticsearch and MongoDB as different data sources. This is a new feature that I'm really happy to see, didn't we have something like this in GeoServer 1? I wasn't there. Ah, harsh, harsh. So this allows you to take your feature type as it comes out of your database and if it's
a shapefile, you could actually give it real long names, you could change the types and so on. Really a happy feature. It also lets you type in small expressions so you can derive new columns on the fly. Here's my cloud services, so GeoMesa, GeoWave and Hadoop.
Get your spark on. Raster data sources. Okay, so we support run-of-the-mill data sources like GeoTiff, our great simple mosaics, complex mosaics, Geopackage made of tiles, all of the above. We support Kakadu, Nitro, libjpeg, Turbo, GDAL data sources.
We added support for libdeflate to make it faster to handle deflate compression. And of course, we support lots in terms of mapping from basic styling to more complex styling. This is a real word from France. We support OSM and if you go to the GeoSolutions repository, you will find OSM styles repository
with CSS styles that you can download and use. We have pretty good support for on-the-fly projection with the dateline wrapping, cutting on the projection limits, dealing with stereographic, which is also very fun, and densifying
on-the-fly long lines to make them smooth. If you want to play with Mapbox vector tiles, we got support for them both as input and as output. And of course, along with the vector tiles comes an integrated tile cache, which is geocache.
I delivered a state of geocache a couple of days ago and it supports all the raster tiles, but also vector tiles. You can store stuff on the file system, on the cloud, and so on. So it's a pretty good integrated tile cache. It runs integrated with some perks like, I don't know, you change the style, it's gonna
drop the cache for you because it's outdated, stuff like that, and we can deliver a lot of data. In addition to drawing your data, we can actually just share it out with the public. So Web Feature Service is the way to offer direct access to your vector data. Web Coverage Service allows people to come in and sample and collect some of your raster
data. CQL is a very small kind of text language similar to an SQL where expression. So it's a little domain-specific language that you can use to filter your contents, select what you want to see drawn on the map, and so forth.
And then we've extended it for eCQL, which allows us to use the functions, be a bit more flexible, and so forth. The original superpower of GeoServer is actually the ability to edit your data. So the Web Feature Service protocol has this operation called transaction, which allows
people to remotely edit data. So you could load up a layer in QGIS and then you could use QGIS to edit the data remotely or make it a mobile data collection app. The other kind of fun superpower here is something called app schema. So if you're a scientist or if you've got an obligation to publish data in a specific
format known as an application schema, you can map your tables, your information to that application schema and meet your regulatory requirements. If complex GML is making your eyes bleed, no problem, in 2020 we started supporting also complex GeoJSON output and we have a module called Features Templating that allows
you to switch from simple features to, let's say, complex outputs for both JSON and XML with simpler templates. It's a little bit easier than app schema. We have support for Inspire in the capabilities documents and now, as you've seen in our
previous presentation, in all the rest of the protocol through the language parameter. Moving on to processing. In addition to publishing your data, we offer options for remote analysis. We've got an integrated web processing service.
This allows you to do many of the analyze, publish and so on and then lots of great effects like making heat maps or contour lines are available. This is a simple example of extending the existing protocols such as WFS and WCS for
download. We have a WPS process that allows us to make larger downloads, filter, clip and eventually build larger maps or animations in a way that will not time out on you. But you can also think big and have a talk to a processing grid and expose the processes that are there.
We just are pretty much acting as a protocol proxy for it. It's also interesting to see what we can do when we put together WPS and styling. So we can do stuff like on-the-fly contour extraction but also NDVI or whatever index you want, a calculation through the GFOL map algebra and you can extract wind barbs
from two bands or other data sets having the two projections and do complicated stuff with it, more complicated stuff. I mean, this is one style with a lot of functions embedded into it, competing square
roots and whatnot to get all the parameters it needs. You can do heat maps starting from points. You can do discrete point interpolations. We have the point stacker if you wanted to aggregate many points into a single point and so on. If you are not happy with this, the WPS is extensible.
The processes are an interface. You can implement your own. So out of the box, GeoServer supports a styling format called SLD, which is really intended for computers. So we really don't want to see you ever edit one of these files by hand. Instead, we recommend one here called GeoCSS, which looks a lot like the CSS you use
for HTML pages. There's also one I like called YSLD because why use SLD? We've got a YAML flavor of SLD, which allows you can convert your SLD files to this and back. And there's also one called MapboxGL, which I need to rename to MapLibre.
And that's really nice because it allows you to use the same style for server-side rendering and for client-side rendering of vector tiles. There's a little bit of an option to convert around. So SLD 1.1 and Mapbox styles can be converted to SLD. And then YSLD can be converted back and forth.
We can also technically implement a translation between SLD and GeoCSS, like from SLD to GeoCSS. We are waiting for someone to either put their time on it or fund this development. But now it's technically feasible. A few years ago it wasn't.
Right. So this is the one where we've got SLD named here for style groups. So you can completely define a map using an SLD file. So you can actually just upload an entire map definition to GeoServer and get it rendered. It's an interesting feature of WMS. Right. And you can do so also with MapboxGL.
You can also, that allows you to combine several styles together to form a single map. So when you upload an SLD or a Mapbox style, you can pull data from all over the place. There's styling references and cookbooks and workshops included in our user manual. So please don't hesitate to dive in.
Marks. There's all kinds of built-in marks. Circles and squares come out of the box. But there's also custom ones for wind barbs and so on. You can also define your own marks and so on in-line or use true type fonts. OK. So we also support multidimensional data, whether or not you're ready.
So multidimensional data typically comes with time and elevation dimensions that you can use to slice the data set and look at them in WMS, WTS, or download them through WCS. Through WCS, you can also download the full data set with all the dimensions using NetCDF as an output.
The symbology is meteorology ready. So you can make the maps that you need. And let's switch to security. Right. If you're publishing information on the web, generally you want to share it with everyone. But occasionally, occasionally you don't. So we've got a full security model.
A nice thing about GeoServer, in addition to the security we've got built into GeoServer, we also have a great attitude of allowing GeoServer to integrate in with whatever security system you're using in your organization. So for authentication, you could check with a database, LDAP, Active Directory, certificates. You could trust your application server.
There's some OAuth things lurking off in the community modules. We've got lots of different integration options for GeoServer. In terms of authorization, we've got a simple kind of user role permission model built in. And then we also have an option called GeoFence, which you can choose to either run remotely
or embed in GeoServer. And that's a really interesting one. It allows you to GeoFence, maybe give people edit permission, but just within a specific area of interest that they're responsible for. In terms of reliability of the code base, we have invested a lot in quality assurance with unit tests, to the point that running the test is taking the vast majority of
the build time. We have a continuous build box. We have also GitHub actions. And whenever we do a pull request, every pull request is manually code reviewed. And here are the automatic checks. And yeah, all of this that we talked about is free.
Yeah, it is. It is. And that's actually a real feature of GeoServer. We are open source. We're actually free as in freedom, yeah, GPL license. So this doesn't get said often enough, even at a Phosphor-G conference. Being freely available really is a superpower of GeoServer.
It's why we're all here. So free as in beer. And yeah. Doesn't this make you want to contribute to this great endeavor? So if you wanted to contribute and you can code, look at the contributing.md file on GitHub, and there is a checklist of what you could be doing or get in touch on the
developer list. If you have money and want to donate a new feature, get in touch with the commercial support providers, our co-contributors, experience providers, the ones providing additional services. If you just have money and want to donate it, let us do whatever is best, there is a
donation button and you can even get an invoice if you so need to through OSGeo. And that does qualify you to be recognized as an OSGeo sponsor as well, because we're an OSGeo project. And if you cannot code and you don't have money but you still want to contribute, yes,
we can. We are happy to receive your help. Community projects live on documentation, so you can improve the documentation. You can answer user questions either on the user list or on Stack Exchange. You can check the tickets that come in in the back tracker and see if they can be actually
reproduced. Try the releases, translations and so on. So there is a lot to be done even if you cannot code. One of the biggest things you can do is when we release a release candidate, that's when we're really looking for feedback from the public and when the developers can really use a hand testing. I guess we're through to questions.
Yes.