February 5th, 2010
On Thursday, the latest major release of PostGIS came out: version 1.5. This release adds a long-wished-for feature to the open source spatial database—direct support for “geodetic” coordinates.
Geodetics are more commonly known as “lat/lon” coordinates. While you could load and work with lat/lon coordinates in earlier versions of PostGIS, the indexing and calculation code did not make any allowance for the fact that the coordinates were angular units, not cartesian units. As a result, objects that crossed the poles or datelines would not index properly, and calculations of areas, lengths and distances returned strange looking answers in “degrees” rather than meters.
With PostGIS 1.5, the new “geography” type is a 100% sphere-aware type, which can be indexed globally and returns answers in meters, using calculations on the spheroid for maximum correctness. It is built on top of a new disk storage and index format, which the existing “geometry” type will also transition to in version 2.0.
The development of the “geography” type was funded as a PostGIS core development task, by a company that chooses to remain anonymous. Since the main geography development is complete the old task has been updated to a new version, outlining extra functions and performance additions that could be added to geography support.
We expect that the geography type will make it easier for new users to store their data in PostGIS (without having to learn about projections and coordinate systems before starting) and also allow global data managers to store and query international data sets for effectively.
November 4th, 2009
One of the items we launched with our new web site this spring was what we have been internally calling “the menu”, and ended up calling “core development“. The premise is that a generation of proprietary software experiences have broken customers of the idea that they can directly pay a vendor for a new feature — as customers we’ve been trained to just wait until the next version and hope. But in an open source world, developers (us) are happy to work on new features directly for customers. So in our core development “menu” we try to provide customers with some guidance about what is possible, writing up some descriptions of larger development pieces and enumerating the functionality they would provide.
One of the items I put in my PostGIS menu last spring was “geodetic types“, native support for latitude/longitude coordinates that allows for indexing of features that cross the poles or dateline, provides direct calculation of distances and areas on the spheroid, and integrates with the other functions in PostGIS. And a few months ago, that menu item was funded by a client! We are currently approaching the final delivery date, the code is committed to the PostGIS SVN repository, and I’m spending the rest of the week testing and polishing.
Amazingly, the open source development started paying off almost immediately — I was getting testing and bug reports from third parties very early in the process, which means the final delivery will be that much stronger for the client. I’ve also added a large number of functions above and beyond those itemized in the contract terms, since this code is going to be in wide use as soon as it is released.
To get a feel for the functions that have been added, check out the documentation for the upcoming PostGIS release. For more technical details on using the new type, see this post.