I would like to take this opportunity to bore everyone with changes in PostGIS documentation and my general take on changes in PostGIS/GEOS land. This is to complement Paul Ramsey's series detailing changes to the engine under the hood of the upcoming
PostGIS 1.3.4/GEOS 3.0.2 and PostGIS 1.4/GEOS 3.1.0 hot rods.
Martin Davis and Paul Ramsey are also ganging up to entice you with the treasures that can be had for much less than what you lost in the stock market
or the amount you pay in licenses and maintenance to your commercial database feudal lords.
PostGIS is not a complete drop-in-replacement for all spatial database use-cases, but I would say it fits the 80%-90% mark and even more with some clever hacks. It is definitely getting better with each iteration. User comments and our own personal experience suggests its speed, ease of use, and flexibility rocks above most commercial offerings.
With a little bit more contribution of time and money from the user community, it will be an even greater force to be reconned with- The David of the spatial database fighting ring; Lean, mean, and a fierce fighting machine.
Consider that PostGIS is probably as fast or already faster than what you are currently using for spatial manipulation and analysis.
Imagine what you can do with getting even 10-20 times faster speed on top of that -
Cascaded Union or 20 times faster Buffering.
Those are merely low hanging fruit. Higher fruit remains to be had - such as improved 3D support, Circular String support, and Geodetic Support.
Getting back to the documentation thing. Well it is not quite as exciting as that revved-up engine Paul and Martin have been yapping about, but nothing complements a well-primed engine than a great user's manual to guide you thru the controls. The upcoming 1.4 HTML and 1.4 PDF will hopefully be just that. In particular the new PostGIS reference section is being expanded on
and once we have that stabilized we'll have nice color glossy pictures to blow your mind.
Kevin Neufeld et. al, have been revamping the documentation for 1.4, and as a
result of this much better organized doc book structure, we have been able to produce some useful derivative products which I shall refer to as documentation meatloaf. One of these meatloaf products is postgis_comments.sql
which is packaged in the 1.3.4SVN install. Why is this meatloaf? Because with a simple XSL transform of the new reference section, this derivative file was created and PostgreSQL does something useful with it to help you navigate the growing plethora of hot rod
PostGIS functions.
If you load this up in your PostGIS-enabled spatial database, you will be swept away with fantastic scenes such as these.
For the PgAdmin III automatic-drive wimps
For the psql command-line stick-shift masochists
testpostgis-# \dd *make*
Object descriptions
Schema | Name | Object | Description
------------+----------------+-----------+-------------------------------------------------------------
pg_catalog | makeaclitem | function | make ACL item
public | st_makeline | aggregate | args: pointfield - Creates a Linestring from point geometries.
public | st_makeline | function | args: point1, point2 - Creates a Linestring from point geometries.
public | st_makepoint | function | args: x, y - Creates a 2d,3dz or 4d point geometry.
public | st_makepoint | function | args: x, y, z - Creates a 2d,3dz or 4d point geometry.
public | st_makepoint | function | args: x, y, z, m - Creates a 2d,3dz or 4d point geometry.
public | st_makepointm | function | args: x, y, m - Creates a point geometry with
an x y and m coordinate.
public | st_makepolygon | function | args: linestring - Creates a Polygon
formed by the given shell.
Input geometries must be closed LINESTRINGS.
public | st_makepolygon | function | args: outerlinestring, interiorlinestrings -
Creates a Polygon formed by the given shell.
Input geometries must be closed LINESTRINGS.
The manual and the generated sql description file are still a work in progress, so don't be too upset
if you don't see your favorite function extensively documented.
I would like to thank the following folks who have helped make the upcoming manual and PostGIS a huge success already. Granted there are
still a lot of gaps to be filled in.
- Kevin Neufeld, who came up with the slick page template for each help function, that makes it trivially easy to parse into derivative products and who has
also been diligently documenting away and sprinkling with full oo-la-la color pictures
and who set up the hudson builder to autobuild the docs and tar packages, that as a side benefit also alarms us when someone breaks the build.
- Dane Springmeyer, who modified the CSS to give a more professional look and also did a prototype meatloaf implementation based on the old documentation style that fully demonstrated how badly we needed a new structure.
- Jean David Techer, who provided his install instructions for generating a slick-looking PDF output doc.
- Paul Ramsey, who created the first manual way back when and proclaimed - All it needs is getting someone's nose to the grindstone and then promptly dashed off to do tasks much more boring, but admittedly more heroic; chasing memory leaks and inefficiencies in logic. I personally can't think of a more depressing way to spend my time than chasing &, *, delete calls. Sounds almost as much fun as being disemboweled while awake. Go Go Braveheart
- Mark Cave-Ayland for stream-lining the code base, keeping law and order, and quickly knocking down Paul's (aka the cowboy) occassional half-baked ideas. We really feel the pain when Mark steps out on a holiday .
- To GEOS team - Martin Davis (aka Dr. JTS for his technical genius), Mateusz Loskot (who has been cleaning leaks and stuff getting it ready for release), Hartmut Kaiser who contributed a small but important leak patch, Safe Software who has already pledged sponsorship.
- To PostgreSQL and the whole PostgreSQL community, for providing the great database infrastructure behind PostGIS.
- And most importantly, to the great OSGEO/PostGIS community of testers, package maintainers, bloggers, and patch developers for spreading the gospel and working to make the next release a great success.