Successfully reported this slideshow.
collective.geo                  managing georeferenced content with PloneGiorgio Borelli
What is collective.geo?             http://plone.org/products/collective.geo                 collective.geo is a package b...
Existing solutions for Plone?                           • they are specific for                             Archetypes • Pr...
I need a new product     • that takes advantage of ZCA     • that is Plone3/4 specific     • that takes advantage of other ...
2009 the first release                            collective.geo - step 1     • it provides a simple user interface to zgeo...
collective.geo step 2                                     first stable release     • code refactoring     • project on coac...
collective.geo packages
Installation                    collective.geo.bundle                            [buildout]                            ......
Internal dependencies               c.geo.openlayers                    c.geo.geographer                                  ...
collective.geo.openlayers      includes the javascript library Openlayers in      Plone and some other javascripts that ar...
collective.geo.geographer     • based on zgeo.geographer and zgeo.plone.geographer     • provides the basic mechanism to e...
collective.geo.geographer                                                                     Example    >>> class Placema...
collective.geo.settings  • based on plone.app.registry  • store default settings for    collective.geo       • map center ...
collective.geo.settingscollective.geo packages
collective.geo.mapwidget     • manages the mechanism that handles Openlayers maps in       Plone     • each map widget is ...
collective.geo.mapwidget                             map layers                             map widgetcollective.geo packa...
collective.geo.mapwidget                                                            Example    >>> from collective.geo.map...
collective.geo.contentlocations     • user interface for georeferencing Archetypes content types     • data is inserted in...
collective.geo.contentlocations                  geocoding                                 edit toolbar                   ...
collective.geo.contentlocations                          custom stylescollective.geo packages
collective.geo.kml  registers a kml view on  the georeferenced  objects and on folderish  contents such as Folders  and Co...
other possibilities
collective.geo.mapcontent - Makina Corpus    http://plone.org/products/collective.geo.mapcontentother possibilities
collective.geo.flexitopic - Christian Ledermann                 http://iwlearn.net/iw-projectsother possibilities
further development
collective.z3cform.mapwidget     http://svn.plone.org/svn/collective/collective.z3cform.mapwidget     a specific widget for...
collective.geo.behaviour        http://svn.plone.org/svn/collective/collective.geo.behaviour     a behaviour for Dexterity...
Contributors          Sean Gillies    Silvio Tomatis - silviot    Gerhard Weis - gweis   David Breitkreutz - rockdj       ...
Upcoming SlideShare
Loading in …5
×

managing georeferenced content with Plone and collective.geo

2,927 views

Published on

Published in: Technology, Sports

managing georeferenced content with Plone and collective.geo

  1. 1. collective.geo managing georeferenced content with PloneGiorgio Borelli
  2. 2. What is collective.geo? http://plone.org/products/collective.geo collective.geo is a package bundle for Plone that allows to georeference contents and to display them on a mapwhat is collective.geo?
  3. 3. Existing solutions for Plone? • they are specific for Archetypes • Products.Maps • they can only georeference points • Products.ATGoogleMaps • they can only use Google Maps • raptus.article.maps • it is developed for a specific project (Raptus Article)what is collective.geo?
  4. 4. I need a new product • that takes advantage of ZCA • that is Plone3/4 specific • that takes advantage of other projects that are developed by people that know GIS well • that is modular, so that some of its parts could be used separately • that gives the possibility to use maps that are not Google • that can be easily extended in the futurewhat is collective.geo?
  5. 5. 2009 the first release collective.geo - step 1 • it provides a simple user interface to zgeo packages (from the gispython project) 1. zgeo.geographer (zgeo.plone.geographer) 2. zgeo.kml (zgeo.plone.kml) • it uses openlayers (Google, Yahoo, Bing, Openstreetmap)what is collective.geo?
  6. 6. collective.geo step 2 first stable release • code refactoring • project on coactivate http://www.coactivate.org/projects/collectivegeo • more contributors (rockdj, gweis) • a nice logowhat is collective.geo?
  7. 7. collective.geo packages
  8. 8. Installation collective.geo.bundle [buildout] ... • Shapely >= 1.0.14 extends= http://good-py.appspot.com/ • libgeos_c >= 3.1 release/plone.app.z3cform/0.5.3? plone=4.0.5 ... • geopy eggs= collective.geo.bundle • BeautifulSoup BeautifulSoup ...collective.geo packages
  9. 9. Internal dependencies c.geo.openlayers c.geo.geographer c.geo.settings c.geo.mapwidget c.geo.contentlocations c.geo.kmlcollective.geo packages
  10. 10. collective.geo.openlayers includes the javascript library Openlayers in Plone and some other javascripts that are useful for managing maps in collective.geocollective.geo packages
  11. 11. collective.geo.geographer • based on zgeo.geographer and zgeo.plone.geographer • provides the basic mechanism to enter geographic data into georeferenceable contents. • any object can be georeferenced if it implements IGeoreferenceable and IAttributeAnnotatablecollective.geo packages
  12. 12. collective.geo.geographer Example >>> class Placemark(object): ... implements(IGeoreferenceable, ... IAttributeAnnotatable) >>> placemark = Placemark() >>> from collective.geo.geographer.interfaces import IGeoreferenced >>> geo = IGeoreferenced(placemark) Now set the location geometry to type "Point" and coordinates 105.08 degrees West, 40.59 degrees North >>> geo.setGeoInterface(Point, ... (-105.08, 40.59)) A georeferenced object has "type" and "coordinates" attributes which should return the correct coordinates >>> geo.type Point >>> geo.coordinates (-105.08, 40.59)collective.geo packages
  13. 13. collective.geo.settings • based on plone.app.registry • store default settings for collective.geo • map center • zoom level • which layers have to be shown on the map • which contents can be georeferenced • default styles for all featurescollective.geo packages
  14. 14. collective.geo.settingscollective.geo packages
  15. 15. collective.geo.mapwidget • manages the mechanism that handles Openlayers maps in Plone • each map widget is a Zope component which contains a series of layers • each map layer is an Openlayers layer and a series of page templates that take care of registering some Metal macro in order to include maps into pages.collective.geo packages
  16. 16. collective.geo.mapwidget map layers map widgetcollective.geo packages
  17. 17. collective.geo.mapwidget Example >>> from collective.geo.mapwidget.maplayers import MapLayer >>> class BingStreetMapLayer(MapLayer): ... ... name = u"bing_map" ... Title = _(u"Bing Streets") ... type = bing ... ... jsfactory = """ ... function() { return new OpenLayers.Layer.VirtualEarth(%s, ... { type: VEMapStyle.Shaded, ... sphericalMercator: true });}""" % Title <metal:use use-macro="context/@@collectivegeo-macros/map-widget" />collective.geo packages
  18. 18. collective.geo.contentlocations • user interface for georeferencing Archetypes content types • data is inserted in WKT format, then processed by the Shapely library and passed to collective.geo.geographer • coordinates can also be specified through the Google geocoding service (geopy) • for each georeferenced object it is possible to set customized styles that will make it different from others.collective.geo packages
  19. 19. collective.geo.contentlocations geocoding edit toolbar WKT datacollective.geo packages
  20. 20. collective.geo.contentlocations custom stylescollective.geo packages
  21. 21. collective.geo.kml registers a kml view on the georeferenced objects and on folderish contents such as Folders and Collections.collective.geo packages
  22. 22. other possibilities
  23. 23. collective.geo.mapcontent - Makina Corpus http://plone.org/products/collective.geo.mapcontentother possibilities
  24. 24. collective.geo.flexitopic - Christian Ledermann http://iwlearn.net/iw-projectsother possibilities
  25. 25. further development
  26. 26. collective.z3cform.mapwidget http://svn.plone.org/svn/collective/collective.z3cform.mapwidget a specific widget for z3c.form that allows to manage the geographic data in a easy way from z3c.form import field, form from collective.z3cform.mapwidget ... import MapWidget class MyForm(form.Form): fields = field.Fields(IMyInterface) fields[geodata].widgetFactory = MapWidgetfurther development
  27. 27. collective.geo.behaviour http://svn.plone.org/svn/collective/collective.geo.behaviour a behaviour for Dexterity that allows to georeference contents and uses the annotations mechanism of collective.geo.geographer for registering datafurther development
  28. 28. Contributors Sean Gillies Silvio Tomatis - silviot Gerhard Weis - gweis  David Breitkreutz - rockdj Makina corpus Christian Ledermann - nan Maurizio Delmonte - miziodel Alice Narduzzo

×