GeoServer Blog

GeoServer 2.1 Beta Released!

Just in time for FOSS4G the GeoServer community is pleased to announce the release of 2.1 beta1. The first beta release of the long awaited 2.1 branch is now available for download. Anticipation for this release has been growing over the last few months due to the number of notable new features it brings. Let’s go down the list.

WMS Cascading

Something users have asked for since the addition of WMS support itself is cascading, the ability of GeoServer to proxy for another remote WMS server like MapServer or another GeoServer. This feature has many uses such as pulling in a remote base layer and overlaying local vector data onto it or securing a locally unsecured map server. Special thanks to the University of Perugia for sponsoring this feature.

Read more about WMS cascading.

Virtual Services

Anyone who has published a large number of layers or feature types with GeoServer has probably at some point been annoyed by the fact that every single layer is published by a single global service. WMS has the ability to group and nest layers but WFS and WCS have no such equivalent. Well now with virtual services one can create multiple service endpoints within a single physical geoserver instance.

Special thanks to Landgate for funding this work.

Read more about virtual services.

Layers from SQL

GeoServer has always been good at publishing a flat database table. But users often need to do more such as pre filter the data in a table, or join two tables together, or generate column values on the fly with a function. Before this feature the recommendation was to create a view. However views can be a maintenance burden and are at times problematic.

Now one can create a layer directly from an SQL query. And on top of that query definitions can be parameterized which allows one to create dynamic queries on the fly. These parameters can be restricted with regular expressions in order to prevent an SQL injection security hole.

Special thanks to Andrea for spending much of his personal time on this one. And also to OBIS who provided the funding for the parametric component of the work.

Read more about SQL layers.

WPS

With 2.1 and the arrival of WPS we welcome a new OGC service to the family. The Web Processing Service is an OGC service for performing geospatial analysis functions over the web. The specification is extensible in nature and allows for simple processes like buffering a geometry to more complex processes such as image processing.

Historically GeoServer has been focused primarily on data delivery without any tools for performing analysis of spatial data. WPS fills that gap making GeoServer a more compete solution for geospatial web services.

Thanks to Refractions Research for the initial contribution of the WPS module and to Andrea once again for taking personal time to bring WPS support to its current state.

Read more about WPS. Download the WPS extension now to try it out.

Unit of Measure

Support for units in SLD allows one to specify values in measurements other than pixels such as feet or meters. This adds a very powerful capability to SLD that in many cases alleviates the need for multiple scale dependent rendering rules. This has the upside of greatly simplifying complex SLD documents.

Special thanks to Milton Jonathan who did the initial GeoTools work to make unit of measure support possible and to Andrea for working with Milton to improve the initial patch. Note that this feature has also been backported to the stable 2.0.x branch. Thanks to SWECO and Malmö City of Sweden for sponsoring the backport.

Read more about UOM support.

DPI Scaling

By default GeoServer renders images at a resolution of 90 DPI. While this is acceptable for the standard screen it is not acceptable for print which requires a higher resolution. Now it is possible to supply a format option to a WMS request on the fly that controls the DPI setting.

Special thanks again to SWECO and to Malmö City of Sweden for sponsoring this work. Note also that this feature has also been backported to the stable 2.0.x branch.

Read more about DPI scaling.

And More

And as usual this release comes with a number of bug fixes and minor improvements. Check out the entire changelog. Help us get to 2.1.0 by downloading the beta and trying it out. Be sure to report any issues on the mailing list or in the bug tracker.

Thanks for using GeoServer!

Read More

Blueprint for Creating an Open Source Web Map

Community member Michelle Ballinger has put together a short tutorial on creating an open source web map using GeoServer.

This tutorial is designed for a beginner and is easy to follow. The steps she uses are:

  1. Creating and editing data with QGIS

  2. Designing SLDs with uDig

  3. Serving maps with GeoServer

  4. Creating a custom OpenLayers application

  5. Posting to the web

The introduction mentions the benefits of using open source and also, interestingly, discusses the pros and cons of making a “mash-up” versus serving one’s own data.

Once again, we see Penn State as a proponent of open source GIS. Have you looked at their Master of Geographic Information Systems program lately?

Read More

GeoServer 2.0.2 release

To meet the growing demand for a geospatial server that meets the open standards set by the Open Geospatial Consortium, the GeoServer community has worked hard to release the new GeoServer 2.0.2. This release includes almost 100 bugfixes and new features.

As previously mentioned, GeoServer now provides support for Oracle Georaster, custom database layouts for image data and polymorphism.

Have you ever wondered what geographical area an EPSG code covers? A new feature has been added to showcase the different projections visually, by showing a map of the projection’s area of validity in the same CRS. Here are three examples of this: EPSG:2964, EPSG:3032, EPSG:22184.

To add to this, we have also added a default style preview in the layer publishing configuration.

The rendering subsystem has been improved to include parameter substitution, meaning you can pass parameters down from a GetMap request into your SLD for dynamic styling purposes.

The ability to do geometry transformations, included in GeoServer 2.0.1 without much fanfare, now has been completely documented.

Building image pyramids just got easier: gone are the times where you had to manually build each level mosaic and configure the main property file by hand. The current pyramid extension can do this for you provided it is given a suitably configured directory set. See the pyramid tutorial for more details.

Finally, this release of GeoServer implements the GetStyles optional WMS method allowing a user to retrieve the definition of all styles attached to a specific WMS layer, see the following link for an example: http://demo.opengeo.org/geoserver/wms?request=GetStyles&layers=topp:states&service=wms&version=1.1.0

Thanks to everyone who have worked hard over the past few months adding features and fixing bugs, in order to make this release happen. As usual, we encourage you to download, try it out, and provide feedback on the users mailing list.

Read More

Polymorphism in application-schema

Support for polymorphism is included in Geoserver 2.0.2. Why do we need polymorphism support in app-schema? Some complex attributes are polymorphic by nature, which means they can have different types for different features.

Before polymorphism was supported, attribute types had to be specified in the mapping file, so could not vary across features. With polymorphism support, filter functions can now be used to specify conditions when determining the encoded type.

For example:

If MaterialCode is “rock”, er:material should be encoded as gsml:RockMaterial, otherwise it should be encoded as gsml:Mineral.

This can be expressed in the mapping file like this:

<AttributeMapping>
    <targetAttribute>er:material</targetAttribute>
    <sourceExpression>
        <linkElement>
            if_then_else(equalTo(MaterialCode, 'rock'), 'gsml:RockMaterial', 'gsml:Mineral')
        </linkElement>
    </sourceExpression>
</AttributeMapping>

Another common example is replacing null values with an xlink:href to a URI representing missing values:

<AttributeMapping>
    <targetAttribute>er:startDate</targetAttribute>
    <sourceExpression>
        <linkElement>if_then_else(isNull(START_DATE), toXlinkHref('urn:ogc:def:nil:OGC::missing'),
                         'gml:TimeInstantPropertyType')
        </linkElement>
    </sourceExpression>
</AttributeMapping>

Read more about app-schema polymorphism support: polymorphism.

Read More

Oracle GeoRaster & Custom JDBC Access

With the soon-to-be-released GeoServer 2.0.2, there are some exciting new features, two of which I would like to mention here.

GeoServer will soon be able to handle raster/image data in customized JDBC database layouts. This is useful for special use cases or existing image databases, offering the freedom of choosing individual table layouts, provided the needed data and image meta information is available.

Because of this new feature, GeoServer will be able to serve Oracle GeoRaster files. This new functionality is due to improvements to underlying GeoTools imagemosaic-jdbc module.

For those who aren’t familiar, the imagemosaic-jdbc extension enables storing tiles and pyramids into a JDBC database. This is useful for building and storing an image SQL database from scratch, following a predefined table layout. See the image mosaic tutorial for more information on how this works.

Read More