Add geo views for dexterity content with leaflet js library
Project description
.. contents::
==========================================================================
collective.geo.leaflet
==========================================================================
This package use the collective.geo.* suite with leaflet.
Todo
====
[ ] Get "attribution" map from registry or
[ ] Testing loading map with Robot
[ ] Add uninstall profile
[ ] Translations
[ ] Simple element view should use geojson
[ ] Use leaflet for control panel map
[ ] Use leaflet for configure map
Dependencies
============
- collective.geo.behaviour
- collective.geo.contentlocations
- collective.geo.geographer
- collective.geo.json
- collective.geo.mapwidget
- collective.geo.openlayers
- collective.geo.settings
- collective.js.leaflet
- collective.z3cform.mapwidget
- collective.z3cform.colorpicker
How to add baseLayer
====================
What is a leaflet baseLayer :
http://leafletjs.com/examples/layers-control.html
In Plone, if you want to add a baseLayer, you have to add a subscriber on collective.geo.geographer.interfaces.IGeoreferenced (for exemple, in `configure.zcml`)::
<subscriber
for="collective.geo.geographer.interfaces.IGeoreferenced"
provides="collective.geo.leaflet.interfaces.IMapLayer"
factory=".maplayers.OpenStreetMap
/>
After, create your factory in python (`maplayers.py`)::
from collective.geo.leaflet.maplayers import MapLayer
from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile
class OpenStreetMap(MapLayer):
name = u"osm"
title = _(u"Open Street Map")
index = ViewPageTemplateFile('browser/layers/osm.pt')
And add your javascript into a template file `osm.pt`::
<script type="text/javascript">
var osmAttrib = '© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors';
var osmUrl = 'http://{s}.tile.osm.org/{z}/{x}/{y}.png';
var %(name)s = L.tileLayer(osmUrl, {
attribution: osmAttrib,
});
</script>
Tests
=====
This package is tested using Travis CI. The current status is :
.. image:: https://travis-ci.org/collective/collective.geo.leaflet.svg
:target: https://travis-ci.org/collective/collective.geo.leaflet
Contributors
============
- Benoît Suttor, benoit.suttor@imio.be
Changelog
=========
0.1b3 (2014-08-26)
------------------
- Use a "local" version of leaflet-google.js downloaded from https://gist.github.com/crofty/2197042
[bsuttor]
0.1b2 (2014-08-21)
------------------
- Fix an indentation error.
[bsuttor]
- Add collective_geo_styles indexer for dexterty content.
[bsuttor]
- Prevent attribute error for popup content.
[bsuttor]
0.1b1 (2014-08-07)
------------------
- Initial release.
[bsuttor]
==========================================================================
collective.geo.leaflet
==========================================================================
This package use the collective.geo.* suite with leaflet.
Todo
====
[ ] Get "attribution" map from registry or
[ ] Testing loading map with Robot
[ ] Add uninstall profile
[ ] Translations
[ ] Simple element view should use geojson
[ ] Use leaflet for control panel map
[ ] Use leaflet for configure map
Dependencies
============
- collective.geo.behaviour
- collective.geo.contentlocations
- collective.geo.geographer
- collective.geo.json
- collective.geo.mapwidget
- collective.geo.openlayers
- collective.geo.settings
- collective.js.leaflet
- collective.z3cform.mapwidget
- collective.z3cform.colorpicker
How to add baseLayer
====================
What is a leaflet baseLayer :
http://leafletjs.com/examples/layers-control.html
In Plone, if you want to add a baseLayer, you have to add a subscriber on collective.geo.geographer.interfaces.IGeoreferenced (for exemple, in `configure.zcml`)::
<subscriber
for="collective.geo.geographer.interfaces.IGeoreferenced"
provides="collective.geo.leaflet.interfaces.IMapLayer"
factory=".maplayers.OpenStreetMap
/>
After, create your factory in python (`maplayers.py`)::
from collective.geo.leaflet.maplayers import MapLayer
from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile
class OpenStreetMap(MapLayer):
name = u"osm"
title = _(u"Open Street Map")
index = ViewPageTemplateFile('browser/layers/osm.pt')
And add your javascript into a template file `osm.pt`::
<script type="text/javascript">
var osmAttrib = '© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors';
var osmUrl = 'http://{s}.tile.osm.org/{z}/{x}/{y}.png';
var %(name)s = L.tileLayer(osmUrl, {
attribution: osmAttrib,
});
</script>
Tests
=====
This package is tested using Travis CI. The current status is :
.. image:: https://travis-ci.org/collective/collective.geo.leaflet.svg
:target: https://travis-ci.org/collective/collective.geo.leaflet
Contributors
============
- Benoît Suttor, benoit.suttor@imio.be
Changelog
=========
0.1b3 (2014-08-26)
------------------
- Use a "local" version of leaflet-google.js downloaded from https://gist.github.com/crofty/2197042
[bsuttor]
0.1b2 (2014-08-21)
------------------
- Fix an indentation error.
[bsuttor]
- Add collective_geo_styles indexer for dexterty content.
[bsuttor]
- Prevent attribute error for popup content.
[bsuttor]
0.1b1 (2014-08-07)
------------------
- Initial release.
[bsuttor]
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
collective.geo.leaflet-0.1b3.zip
(50.1 kB
view hashes)
Close
Hashes for collective.geo.leaflet-0.1b3.zip
Algorithm | Hash digest | |
---|---|---|
SHA256 | c1db7c615d89ead3c2f015ef847b31055f6bdb9eb3ece0153c0bd3b1110bcc54 |
|
MD5 | e32fcacdf912f6db25313ae17025c53a |
|
BLAKE2b-256 | 79af6a13f91589e6b8dd5c582ee1b48def8ebfb3a0312a70dcd3bf635c9c9807 |