Warning: PostGIS 1.3.4 + Mapserver

Warning to Mapserver users: There is a bug in PostGIS 1.3.4 which will cause PostgreSQL to crash when used in conjunction with Mapserver and LINE layers. We should have PostGIS 1.3.5 out this week, which will fix the problem. In the meantime, reverting to version 1.3.3 will remove the problem.

This bug will affect any PostGIS application that calls the ST_Multi(), Multi(), ST_Force_Collection() and Force_Collection() functions with a LINESTRING as an argument. Mapserver happens to have a Force_Collection() as part of the main draw routine for PostGIS, so it is very likely to exercise the bug.

If you are seeing crashing behavior in conjunction with LINESTRING types, this bug is probably the source. It was introduced in 1.3.4 when fixing an similar bug for CURVE types. Regina Obe is currently beefing up our regression suite, so that the odds of introducing similar bugs in the future are much lower.

Update: PostGIS 1.3.5 has been released to address this bug.

"GeoGopher" Growth

Sean thinks the OGC-based GeoWeb isn’t showing particularly stellar growth, press releases notwithstanding.

Google bears him out: http://www.google.com/search?q=inurl:request=getcapabilities

The number of results returned from this search isn’t moving up all that fast.

Toronto Code Sprint

Last month, over beers in Lawrence, Kansas, I had a discussion with Steve Lime and Howard Butler about what a good Mapserver code sprint might look like. And when I got home, I decided to see if we could have a code sprint sort of like that: central location, focussed on the “C tribe” of open source software applications, in the off season for reasonable cost.

With lots of work from Tom Kralidis in Toronto, we now have all the pieces in place for a Toronto code sprint this winter from March 7-10. We are expecting about 20 of the key contributors to projects like Mapserver, GDAL, PostGIS, GEOS, QGIS, and Proj4 to be in attendance, for a brain-busting four days.

We are also looking for a few sponsors to help cover the modest expenses associated with a venue, internet and catering during the sprint. If your organization has $500 to spare and wants to curry favor with some of the more influential folks in open source geospatial, please get in touch with me, or just add your name to the list of sponsors on the wiki page and I’ll get in touch with you.

Update: We’ve now received sponsorship from Rich Greenwood, OSGIS.nl, Coordinate Solutions, LizardTech, and SJ Geophysics, thanks so much everybody!

AWS GeoWeb

There are a couple of rate limiting steps of building libraries of free data, centralized in one place, for all to use. First, it costs a lot (for someone trying to provide a free service) to store and provide access to large amount of data. Second, if you don’t get enough eyeballs, the large effort in maintaining the library starts to feel pointless, and eventually you stop, driving the value of your collection eventually to zero.

Could the new Public Data Sets service at Amazon Web Services be a break from the dismal tradition of free data set aggregation? There is a limitation, in that you are meant to access the data sets from the AWS cloud (reducing Amazon’s bandwidth investment in hosting them), but with many apps migrating into the cloud anyways, this could be quite a boon.

From TechCrunch.

Swimming with the MapFish

So, I was at a client site this week, doing a few days of reviewing their application and providing advice on PostGIS design, Mapserver performance, all my favorite things. And we come to the last day, and they say “you’ve been talking about how our application would look so good if we used OpenLayers and ExtJS and how great those tools are so… how about you mock up a little data entry application using our data for us this morning, before your flight?”

Glurp!!

I’m not much of a web programmer, but fortunately OpenLayers and MapFish have adopted a policy of “documentation by example”. OpenLayers is by far the leader in this, eschewing tutorials in favor of a long list of tiny example pages, each one demonstrating a discrete unit of functionality.

Since “mediocre authors borrow, great authors steal”, I set about finding something I could steal that would get me closer to my goal. Fortunately, I quickly found want I wanted in the client code base of MapFish – Mapfish is an ExtJs/OpenLayers framework, so it had the components I was yapping about, and it included a simple editing example.

MapFish Default Editing Example

Starting from there, hooking up the client’s map services, using the OpenLayers examples to grab some extra layer types, and adding a few buttons, I had the desired proof of concept in plenty of time to make my afternoon flight. Thanks MapFish and OpenLayers, for making me look so damned good!