Vizzuality just launched CartoDB, which is a cloud based GIS database and processing system based on PostGIS. Sort of a dynamic back end for map data dependent applications.
Displaying vector data is one of WhirlyGlobe's big strengths. Images are fine, but you just can't beat vectors for most things, particularly in 3D. Much of the web mapping world is focused on image tiles so it's nice to run into people who get vectors. Here's a quick demo app we put together.
|Protected areas organized by country.|
This sort of thing is more fun if it's interactive, so here's a video.
Anatomy of a DemoBuilding the demo itself was pretty easy. I started with the WhirlyGraph app which is checked in to the Contributed area in WhirlyGlobe. That app lets you select countries of interest and show various statistics as candy colored polygons floating above the terrain.
I turned off the basic stats display functionality and substituted a query to CartoDB. Here's an example for Columbia:
http://viz2.cartodb.com/api/v2/sql?q=select name,desig,gis_area,iucn_cat,ST_Simplify(the_geom,0.01) as the_geom from wdpa_2012 WHERE country='COL' AND gis_area > 10.0000&format=geojson
The salient parts of the URL are like so.
- It's an SQL query, returning the fields: name, desig, gis_area, iucn_cat, and the geometry. Those are all derived from fields in the original table.
- The data is coming from the dataset wdpa_2012.
- Rather than return the raw geometry, it simplifies it a bit first. Very nice for display.
- We filter by country code (COL) and polygons with a gis_area greater than 10. This gets rid of the really small data.
- The return format is GeoJSON. Human readable if you want to take a look.
Once the query comes back, I process it with the world's dumbest GeoJSON parser and toss the results into a lofted poly layer. Because that looks pretty.
It took an hour to put together the initial demo. I spent a couple more hours making it a bit more friendly. A shippable app would take longer, of course, and I'd want to look at data sizing issues. Big queries are going to be slow and take a while to display. A user would probably want more immediate feedback.
CartoDB was nice and easy to use. The returns were more or less what I was expecting and tweaking the query was quite easy if you have a GIS background. I could see making some interesting apps with this.