Gilles Bassière wrote: > Hi, > > I mostly use Django for my projects and I enjoy really much the GEOS and > OGR integrated bindings. I've sometimes wished there was a simple way to > display the objects of a geo-model. I know that GeoDjango already have > GeoFeeds to stream objects as vector data, olWidget is also nice in > order to display/edit a geometric field. Unfortunately, I can't find a > clean and easy way to stream maps of my objects (WMS or equivalent). I > believe Mapnik and its Python bindings would fit very well for this purpose. > > I could set up ogcserver and configure a datasource reading in the > underlying database but in such architecture, map rendering lives > completely outside Django and this is really "static" and involves many > limitations. What I would like to do is the following: > > # Import my Django model > from models import MySuperModel > > # Import mapnik and something that ease integration with Django > import mapnik > from ... import MapnikLayer > > # Instantiate a Mapnik map > m = mapnik.Map(600,300,"+proj=latlong +datum=WGS84") > > # create style here > > # Create a mapnik layer based on my Django model > lyr = MapnikLayer(name='supermodel', > queryset=MySuperModel.objects.all()) > > # finalize map here > > Using a Django queryset would allow simple filtering of objects through > Django's ORM. For example, one could use such code in a Django view in > order to render a map of the current user's objects. > > I can imagine two ways of implementing this: > - The first is to write a Mapnik plug-in but I am not sure it's even > possible. I don't know much about C++ but I believe that the C++ plug-in > code can't use Django's ORM functionalities, am I right? > - The second is to write an helper function or class which detect the > back-end, the queryset SQL query, the queryset geometric attribute and > instantiate the proper mapnik Layer with this information. > > I'm merely thinking out loud here. I've not yet planned any development > but I may try to code something like this in the future and, if so, I'd > be pleased to get your comments as I'm not sure if it is feasible or if > I'm on the right track. > > Cheers >
I came across a similar thread [1] which point to the code of EveryBlock.com [2]. In this project, a mapnik Datasource is instantiated from Django but the process is not as automagic as I would like. This example convinced me to go with the second proposition presented in my previous post. I'll try to set up a proof of concept based on this option. Cheers [1]: http://lists.berlios.de/pipermail/mapnik-users/2009-December/002677.html [2]: http://code.google.com/p/ebcode/ -- Gilles Bassière - Web/GIS software engineer http://gbassiere.free.fr/ _______________________________________________ Mapnik-users mailing list [email protected] https://lists.berlios.de/mailman/listinfo/mapnik-users

