GeoServer printing preview release

Remember the good ol’ days, when the only maps you had were pieces of paper?  The past is now! PDF example

Hi, I’m Alan, and I’m interning with OpenGeo this summer.  My first order of business has been plugging MapFish’s printing capability into GeoServer as a community module; right now we’re releasing a developer preview. The module exposes an HTTP interface that allows the user to ask the server to compose an attractive map in PDF format.  MapFish also provides a JavaScript library that allows easy printing from a OpenLayers map.

Up for trying it out? You’ll need to download a nightly build of trunk and add a few files to it. I have written up step-by-step instructions for anyone interested. If you have any feedback, please chime in on the GeoServer developers mailing list.

New Windows Installer

GeoServer has provided a Windows installer for the past 4 years (since at least version 1.2.4, if not before). It has always been simple and functional, providing a modest wrapper for the Jetty container found in the binary distribution.

However, there are a number of ways in which GeoServer works in this environment that could be more in the spirit of Windows. So, with the release of GeoServer 1.7.5, we have redesigned the way GeoServer integrates with Windows, in the form of a new installer.

This new installer offers a host of new user-friendly features. First of all, GeoServer now shows up as a Windows service, in line with other server software such as Apache HTTP Server or PostgreSQL . This alleviates the need to have a command line window persist on the desktop when running GeoServer. Integration with Windows Services allows administrators the ability to automate the management of GeoServer, although starting and stopping GeoServer is also still possible from the Start Menu as before.

GeoServer now appears on the Add/Remove Programs list. It was always possible to uninstall via the Start Menu, but the uninstall option is now in a place where more users will expect it to be.

The installer itself has been redesigned as well. It now allows you to link to an existing data directory (if you have previously created one). Also, it allows (and encourages) you to change the username and password for the web administration interface, a feature unique to this installer. (In all other cases, it is necessary to edit the users.properties file.)

There are other some other user-friendly features added, such as the requirement (and check) for administrator rights to run the installer, to prevent errors during the install process.

Since this installer is very new and has not been tested on all platforms, we have included a link to the legacy installer that functions just like previous versions. But we encourage everyone to try out the new installer (and provide feedback on what works and what doesn’t) so that we can make the experience better. All in all, we feel that this is a marked improvement in the GeoServer Windows experience. Enjoy.

Ahora tenemos un grupo de discusión para la comunidad hispano-hablante

Here’s a quick announcement for all those who understand the above:  GeoServer now has a Spanish language users mailing list!  Created and moderated by core GeoServer developer Gabriel Roldán, the mailing list is a resource for those who would like assistance in all things GeoServer, but prefer to discuss in Spanish.  This marks the fourth language for which GeoServer has a mailing list (the others being English, Portugese, and Italian).

En respuesta a la creciente demanda de información e ímpetu de colaboración de usuarios de habla hispana, hemos creado un grupo de discusión para la comunidad hispano-hablante donde puedes comunicarte con otros usuarios de GeoServer en español y discutir cualquier tema relacionado con el proyecto. Si quieres involucrarte activamente en el desarrollo de GeoServer puedes inscribirte en la lista de desarrolladores (en inglés).

We’re also looking for users to contribute documentation in Spanish, así que si quieres ayudar a escribir documentación en español dejanos saber.

GeoServer 1.7.5 Released

The GeoServer Team is happy to announce the the release of GeoServer 1.7.5, the sixth stable version in the 1.7 series.

This release contains some new features that are designed to improve the use of GeoServer in a production environment. Some new WMS settings have been added that allow the administrator to limit the amount of resources consumed by each WMS request, specifically in terms of memory and time used.  It is also now possible to use JNDI connection pools for the DB2 and Oracle (NG) databases, providing better integration with enterprise environments.

The features pregeneralized datastore extension now allows an administrator to set up a vector data pyramid, and therefore significantly speed up WMS data serving over large data sets, especially those having geometries with a large number of coordinates.

The chart extension (previously mentioned on this blog) is contained in the release, allowing the overlay of typical business charts on top of WMS maps.

For Windows users, this version introduces a new service-based installer, making GeoServer run like any other standard Windows service, and allowing for easier administration.

And, as usual, a host of bug fixes (over 40!) have been incorporated into this release. Give it a try!

GeoServer 2.0, now in beta

The GeoServer Team is happy to announce GeoServer 2.0-beta1, the first beta release of the 2.0 series.

The primary focus of version 2.0 is the new user interface. This interface addresses many suggestions for usability improvements, including paging and filtering of lists of information, batch removal of layers, and the elimination of the Submit-Apply-Save workflow.

filtering styles

Another particularly useful feature added since alpha2 was released is cascading delete. This feature allows a user to remove a workspace or a data store and have all the entities contained inside (such as layers) also be removed. Previously, it was necessary to delete all layers individually before being able to remove a data store. To prevent unintended deletion, a confirmation page details what will be removed.

As usual a host of other fixes and improvements (over 100!) have also been incorporated into this release. Please download, give it a try, and forward your feedback along.  We greatly appreciate reporting issues to the users mailing list and look forward to general feedback on the new user interface.

GeoServer chart extension

Business reporting is a common need in various organisations. Most of the time, it is built upon tables and simple charts, such as pie or bar charts. Yet, sometimes, you need to add an extra dimension into it, in particular, geographic distribution. In some cases a thematic map does the job nicely, but if you need to represent the composition of a phenomena relying on more than one variable, the result ends up being hard to read.

This is where the overlay of charts and maps come into play: the idea is to overlay bar chars, or pie charts, over a polygon or point map, associating each geographic feature with its own little diagram. As surprising as it may sound, you have been able to create such maps with GeoServer since a few months ago: by putting together the dynamic symbolizers feature and the Google Charts online API, it’s already possible to nicely overlay charts of top of a map. This works great in conjuction with the KML output, where the client has to go and fetch the chart separately anyways. However, it present some limitations in the classic WMS case:

  • you are depending on an external service that’s not under your control
  • if there is any missing feature, you can just ask and hope that next release will include that feature
  • rendering the charts requires remote calls, which will slow down the map rendering significantly, at least for the first requests

An open source solution, completely embedded in GeoServer, would guarantee control over the service availability, over its features, and provide excellent performance. David Gilbert, of JFreeChart fame, must have thought the same when he developed Eastwood Charts, an open source implementation of the Google Charts API.

The GeoServer charting module builds on top of Eastwood charts, bridging it with the dynamic symbolizers capabilities already available, to provide fast, in process charting over the map. Let’s have a look at an example built on top of the usual topp:states demo layer. We are going to depict the distribution of male/female population in the various states using pie charts, and to make the diagram more interesting, we’ll make the pie size proportional to the total amount of people in the state. Here is how the result will look:

You can download the full style if you like, here we’ll have a look at the snippet in which the diagram is setup:

  <PointSymbolizer>
    <Graphic>
      <ExternalGraphic>
        <OnlineResource xlink:href="http://chart?cht=p&chd=t:${100 * MALE / PERSONS},${100 * FEMALE / PERSONS}&chf=bg,s,FFFFFF00" />
        <Format>application/chart</Format>
      </ExternalGraphic>
      <Size>
        <ogc:Add>
          <ogc:Literal>20</ogc:Literal>
          <ogc:Mul>
            <ogc:Div>
              <ogc:PropertyName>PERSONS</ogc:PropertyName>
              <ogc:Literal>20000000.0</ogc:Literal>
            </ogc:Div>
            <ogc:Literal>60</ogc:Literal>
          </ogc:Mul>
        </ogc:Add>
      </Size>
    </Graphic>
  </PointSymbolizer>

Let’s analyse the components of the ExternalGraphic call, which follow the rules of a Google Charts API call:

  • cht=p: the chart type is pie
  • chd=t:${100 * MALE / PERSONS},${100 * FEMALE / PERSONS}: the chart data is expressed in “text” format, and in particular, the first value is the result of 100 * MALE / PERSONS, where MALE and PERSONS are two attributes of feature being rendered
  • chf=bg,s,FFFFFF00: we state that the chart background fill is solid, white and… transparent. In particular, the color is expressed as RRGGBBAA, where AA is the alpha component, which controls transparency. In particular 0 is fully transparent, 255 is fully opaque

The size of the chart is controlled using the usual <Size> element of external graphics, an in particular, it’s setup so that it’s proportional to the PERSONS attribute via the expression: 20 + (PERSONS / 20,000,000) * 60.

We encourage you to download the chart extension and to explore its charting possibilities. You can use it with GeoServer 1.7.4, and can find out more about chart setup in the online Google Charts documentation (mind, a handful of charts and options are not supported by Eastwood, in particular, the Google-o-meter and the spider ones).

Let us know how that works for you!

New documentation launched

I’m excited to tell you about some changes to the GeoServer documentation. We are transitioning away from our wiki in favor of a new system. After much discussion, we are now using the Sphinx Documentation Generator.

Sphinx has many advantages over a wiki. The biggest advantage is that the content of the documentation is written in plain text (using a simple markup language called reStructuredText) and then “compiled” to become the finished product. With documentation now essentially just another part of the source code, it can be brought under version control. This means that we can, for the first time, have version-specific documentation, as well as the ability to allow for simultaneous editing, conflict management, and all of the other tools associated with version control.

While wikis have many advantages, a clear hierarchy is generally not one of them. (For example, one doesn’t read Wikipedia “from the beginning.”) And while search remains a feature of our documentation, Sphinx is geared towards the creation of text that can be constructed and read like a manual. Along this line, we can now create documentation in PDF, a feature that has been asked about for years.

We have soft launched the new documentation with the release of GeoServer 1.7.4. The old wiki is still live, and will remain so. But there is still much to be done, and you can help. The documentation is still very much a work in progress, and not all of the content from the wiki has been migrated. We’ve developed a guide to documentation that describes the ways that you can contribute. The most helpful way is to create content for empty or unfinished pages, and either submit a bug report with the content attached or commit the changes on your own. (If you are interested in getting commit rights to our documentation, please send an email to the GeoServer developers mailing list.) If you are aware of a page in the wiki that should be migrated to the new site, please let us know as well.

For GeoServer 1.7.4, the documentation download contains both HTML and PDF output. I encourage everyone to download, read, and make suggestions. For our part, we will continue to work to make GeoServer easy to learn, use, and understand.

GeoServer 1.7.4 Released

The GeoServer Team is happy to announce the the release of GeoServer 1.7.4, the fifth stable version in the 1.7 series.

This release contains some new features, many having to do with improved map rendering options. We have introduced WMS decoration, which provides a framework for adding images such as compasses and legends to WMS requests using absolute, not spatial, positioning. The GetFeatureInfo request, often used when clicking on an OpenLayers map, now has a parameter that can be adjusted to allow for looser tolerance, eliminating the need to click precisely on the feature. GetFeatureInfo also now observes the filters in the SLD, so as to prevent displaying information about a hidden feature. (Thanks to SATA Hi-Tech Services, an Italian company specializing in data security solutions, for providing funding for the GetFeatureInfo improvements.) Those who work with labels on your map will be pleased to note that label conflict resolution (the selective display of labels to prevent visual collisions) can now be turned off if desired. Finally, we have the ability to generate custom legends for raster files via the GetLegendGraphic request.

And, as usual, a whole host of bug fixes (over 50!) have been incorporated into this release. Give it a try!

Development work on the 1.7 series will begin to wind down in favor of GeoServer 2.0, but we anticipate the release of 1.7.5 within the next two months.

See the new UI

I am happy to announce to everyone a sneak peak of the future of GeoServer. Behold the newest alpha release of GeoServer 2.0.

I first mentioned GeoServer 2.0 last August when the first alpha was released, but much work has been done since then. The most obvious and exciting new feature in GeoServer 2.0 is the new UI, based on the Wicket framework. The UI has been totally redesigned and updated to provide a greatly improved user experience. Take a look at some screenshots:

Front page

Status

Layer preview

Styles

Another happy announcement is a major workflow change for data configuration. The Submit -> Apply -> Save workflow, often bemoaned by users, has been eliminated, in favor of a simpler Save changes workflow, with changes automatically persisting. To me, that’s a 66.6% reduction in button clicks!

This is an alpha release (the most recent stable version remains at 1.7.3) and so it comes with a few caveats. It’s very new code, and not fully tested, so please don’t run it in a production environment. Features may also be likely to change as the code approaches stability. Also, running GeoServer 2.0 with an existing data directory will alter it such that it will become incompatible with existing stable versions. We have instructions on how to migrate back to 1.7.x, but it might be better to use the built-in data directory for now, or at least to back up your existing data directory first.

That said, we want everyone to download, try it out, and provide feedback, since it was partly in response to user feedback that the GeoServer Team upgraded the user environment. I hope you enjoy!

Marine conservation with GeoServer

I received a note recently from a GeoServer blog reader who wanted to show off another project using GeoServer, which I am happy to present here.

The Marine Science Institute at UC Santa Barbara and Farallon Geographics have built a public, online mapping application enabling scientists and community members to help select marine environments that they feel should be designated for conservation, recreational, and/or commercial uses. It’s called the MarineMap Decision Support Tool.

You need to have a login to make edits, but anyone can view the layers that are already there. And there’s a good amount of info too, from water quality to estuaries to locations of popular surfing sites. These layers can be exported to Google Earth as well. The designers have also helpfully created a screencast showing how to use their application.

The site is based on GeoServer and OpenLayers. But what intrigued me was the pleasing desktop-styled application. It reminded me of GeoExt, and for good reason, since GeoExt is a framework for constructing web mapping applications combining the user interface components of Ext with OpenLayers. And sure enough, it turns out that Ext was used in this application.

I don’t know about you, but I think the folks at the MSI should join up with the GeoExt project; I’m sure everyone could learn a lot.

Download GeoServer