Web Geo-Processing, Pull Style
2007-07-20T23:10:17Z | Comments: 3
The growing consensus is that map image and feature services can be (and should be) done RESTfully. Is there any aspect of web GIS that cannot? Geo-processing, perhaps?
Last week I started to roughly sketch out how one might RESTify an OGC Web Processing Service (WPS). Post data to a process resource, get back a 202 ("Accepted") response with a "job" URL to be checked for status ... more or less what Richardson and Ruby propose in Chapter 8 of "RESTful Web Services". Then I remembered that there is a different approach, at least for data that is already on The Web: pull your data through a processing resource with HTTP GET. Like Yahoo Pipes.
I've got a feed at http://pleiades.stoa.org/places/settlement/classical.atom. It contains the locations of human settlements in ancient Lycia and Pisidia attested to be occupied during the Classical period, and I want to find the intersections of their spheres of influence. For that matter, I'd like anyone to be able to find those intersections, using whatever radius they wish. Furthermore, I'd like to let people process practically any GeoRSS feed in this way.
To this end, I've made a process resource at http://zcologia.com/mush/buffer-intersection. You pull another feed through it via a URL like:
http://zcologia.com/mush/buffer-intersection/ ?url=http%3A%2F%2Fpleiades.stoa.org%2Fplaces%2Fsettlement%2Fclassical.atom&d=10.0
The source data's URL is provided as the url parameter, and a radius of 10.0 kilometers is specified using the d (distance) parameter. Go ahead and get the result feed and display it using Google Maps.
Here are a couple more examples:
OpenContext projects feed, 200 km intersections
Geo-Annotated Reuters News feed, 100 km intersections
Interested? Feel free to try the user interface to the service at http://zcologia.com/mush/buffer-intersection/index.html
Keep in mind that this service is just a toy. There's little support for asynchronous processing, and attempts to pull big feeds will certainly time out. Feeds with less than 50 or so intersections will be fairly responsive. YMMV. I'll try to keep it running as much as I can.
Intersection of 2 different feeds is obviously the next step.
