Least power

Volker Mische on the future of GeoCouch:

You will lose functionality like reprojection. The spatial index won't know anything about projections. So GeoCouch won't be projection aware anymore, but your application still can be. For example if you want to return your data in a different projection than it was stored, you do the transformation after you've queried GeoCouch.

You would also loose fancy things for geometries, like boolean operations on them. But this is something I'd call complex analytics, and not simple querying.

GeoCouch would only support three simple queries: bounding search, polygon search and radius/distance search. If the search would be within a union of polygons, let's say all countries of the European Union, you would simply make the union operation before you query GeoCouch.

To me, this design acknowledges something like a Rule of Least Power for GIS interfaces:

When designing computer systems, one is often faced with a choice between using a more or less powerful language for publishing information, for expressing constraints, or for solving some problem. This finding explores tradeoffs relating the choice of language to reusability of information. The "Rule of Least Power" suggests choosing the least powerful language suitable for a given purpose.

Comments

Re: Least power

Author: Kirk Kuykendall

It sure seems like domain specific languages are supposed to provide a least power approach too. I wonder why spatial DSL's haven't been developed.

Re: Least power

Author: Michael Weisman

Perhaps I'm missing something (I am far from an expert on CouchDB) but given how easy it is to query very large datasets in a distributed environment with map reduce functions, and how there really is nothing else that I am aware of for doing distributed GIS (the best tool I have found was hadoop streaming with python scripts), I think there is a good case for PostGIS-caliber geometry functions for couchdb.

Re: Least power

Author: Sean

JEQL and CQL come to mind. MapServer has a spatial filter language too.