Return-Path: X-Original-To: apmail-couchdb-dev-archive@www.apache.org Delivered-To: apmail-couchdb-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 533307EF7 for ; Sun, 17 Jul 2011 00:12:48 +0000 (UTC) Received: (qmail 67818 invoked by uid 500); 17 Jul 2011 00:12:47 -0000 Delivered-To: apmail-couchdb-dev-archive@couchdb.apache.org Received: (qmail 67769 invoked by uid 500); 17 Jul 2011 00:12:46 -0000 Mailing-List: contact dev-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@couchdb.apache.org Delivered-To: mailing list dev@couchdb.apache.org Received: (qmail 67761 invoked by uid 99); 17 Jul 2011 00:12:45 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 17 Jul 2011 00:12:45 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of norman.barker@gmail.com designates 74.125.82.54 as permitted sender) Received: from [74.125.82.54] (HELO mail-ww0-f54.google.com) (74.125.82.54) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 17 Jul 2011 00:12:40 +0000 Received: by wwf4 with SMTP id 4so2158075wwf.23 for ; Sat, 16 Jul 2011 17:12:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=NpNeFJ464vh3K3/mZDbPsKg7NlRFMofhv41z+cOGJZI=; b=jVga+7NwtcxxKAXKrwzWma0kmkydIl2JnpVvz4E9n3bpkrYGMPEAKFLpFFQtfp+yGZ nyK2ooOvarIPgLboVoMXN2usJweO1JdwLQUvI7j6cU72AqJAnPYgwuuNFZMPr+G4Vn6b oI5zgodyp7H5eWpH6DEmCQurufblKIX9bpkiE= MIME-Version: 1.0 Received: by 10.216.185.19 with SMTP id t19mr4289151wem.8.1310861539791; Sat, 16 Jul 2011 17:12:19 -0700 (PDT) Received: by 10.216.28.20 with HTTP; Sat, 16 Jul 2011 17:12:19 -0700 (PDT) In-Reply-To: References: Date: Sat, 16 Jul 2011 18:12:19 -0600 Message-ID: Subject: Re: MapServer and CouchDB From: Norman Barker To: dev@couchdb.apache.org Cc: warmerdam@pobox.com, even.rouault@mines-paris.org Content-Type: text/plain; charset=ISO-8859-1 X-Virus-Checked: Checked by ClamAV on apache.org Hi, sorry for the delay on this, initial implementation here https://github.com/normanb/couchmaps and a couple of changes to mapserv.c (but minor) https://github.com/normanb/mapserver/tree/master/mapserver I will add some docs, readmes and simple tutorials some time next week, hopefully for the geo-meetup in San Francisco the following week for those that are interested, but if you know mapserver and couchdb then it is relatively simple to get going. The couchdb update hander will take an existing MapServer mapfile, split it on carriage returns (so 'PUT' using --data-binary when using Curl) and transform this into a JSON document that is stored inside CouchDB. Eventually I would like to use http://www.gdal.org/ogr/drv_couchdb.html as a MapServer data source. I chickened out and opted to use pattern matching for mapfiles rather than neotoma, pattern matching worked ok though. thanks, Norman On Wed, Jun 29, 2011 at 10:30 PM, Chris Anderson wrote: > Norman, > > I'd suggest looking at Paul Davis's write up of the externals API. It > is designed to do 2 things well: > > * keep a background process alive, usually an HTTP server > * proxy requests to that HTTP server > > http://davispj.com/2010/09/26/new-couchdb-externals-api.html > > I'm not sure if you'd be able to build your Map Server using exactly > these APIs, but if you can you'll gain the benefits of less custom > code. Or at least it may provide inspiration for how to integrate. > > Chris > > > On Tue, Jun 28, 2011 at 11:51 AM, Norman Barker wrote: >> Hi, >> >> I am planning to wrap MapServer as a supervised process within CouchDB >> using Erlang. MapServer is a CGI application, it should be >> straightforward. The aim will be to store the MapServer map files >> (just text docs) that can passed in with every CGI call as JSON docs >> within CouchDB. The hook will be be register MapServer as an external >> process within CouchDB. >> >> If someone has already thought of this then let me know, I see GDAL >> has support for CouchDB as a client driver (using http though) so >> serving geojson through MapServer WFS or rendering over WMS should be >> possible. >> >> Let me know if you are interested, I should have some available for >> review middle of next week, I am just sounding out for now. >> >> The Erlang method of communication to C/C++ over stdio fits (in my >> mind) perfectly with the existing MapServer CGI model. GeoCouch can >> then be a supported backend of MapServer. >> >> cc'd Frank and Even rather than cross-posting as they seem to have >> some couch interest. >> >> thanks, >> >> Norman >> > > > > -- > Chris Anderson > http://jchrisa.net > http://couchbase.com >