Description
django-reploc permet de gérer et d'afficher une liste de points d'intérêts sur une carte Google Map dans une application Django.
Liens utiles
http://pypi.python.org/pypi/django-reploc/0.1.1-pre1 http://bitbucket.org/codekoala/django-reploc
Installation
Version testée
0.1.1-pre1 | changeset 2cc600d36101
Modules à installer
easy_install django easy_install geopy easy_install django-reploc
Settings Django
TEMPLATE_CONTEXT_PROCESSORS = ( ... 'reploc.context_processors.representatives', ... )
..
INSTALLED_APPS = ( ... 'reploc', ... )
..
GOOGLE_MAPS_KEY = ''
Note: le paramètre GOOGLE_MAPS_KEY doit être renseigné en production.
Urls Django
urlpatterns = patterns( ... # reploc urls (r'^loc/', include('reploc.urls')), ... ) import os _cur_path = os.path.abspath(os.path.dirname(__file__)) urlpatterns += patterns('django.views.static', url(r'^reploc/(?P<path>.*), 'serve', { 'document_root': os.path.join(_cur_path, 'media', 'reploc') } ), )
Templates files
Fichier à surcharger:
<project_path>/templates/reploc/locator.html
Contenu minimal:
{% extends 'base.html' %} {% block title %}Representative Locator{% endblock %} {% block extra-head %} <script type="text/javascript" src="/reploc/js/jquery.js"></script> <script src="http://maps.google.com/maps?file=api&v=2&key={{ GOOGLE_MAPS_KEY }}" type="text/javascript"></script> <script type="text/javascript"> {% include 'reploc/locator.js' %} </script> {% endblock %} {% block content %} <h2>Representative Locator</h2> <label for="reference-address">Address: </label> <input type="text" id="reference-address" /> <label for="reference-radius">Radius: </label> <select id="reference-radius"> <option value="1">1 miles</option> <option value="2">2 miles</option> <option value="5">5 miles</option> <option value="10">10 miles</option> </select> <input type="button" value="Find Representatives" id="find-locations" /> <input type="button" value="Reset Map" id="reset-locations" /> <div id="location-matches"></div> <div style="clear:both"></div> <div id="representative-map" style="width: 690px; height: 500px; margin-top: 20px;"></div> <h3 id="directions-title"></h3> <div id="location-directions"></div> {% endblock %}
Media files
Nous nous assurons juste de disposer de jQuery. Pour cela nous créeons les dossier suivant dans le lequel nous plaçons le fichier `jquery.js` (version récente de jQuery):
<project_path>/media/reploc/js
Lancement
$ python manage.py syncdb $ python manage.py runserver
Screenshots
Partie administrateur
Partie utilisateur
Test
Les plus
- Simple à installer, administer et skiner.
- Gestion des itinéraires.
Les moins
- La zone de recherche est affichée en gris transparent sur la carte. Pour trouver une adresse la zone prend toute la carte et la rend moins lisible <- couleur hard codée dans le le script locator.js.
- Pas d'utilisation des `attributes` dans la template de démo. Ceux-ci doivent permettent d'associer une ou plusieurs images à une adresse selon un `attribut`.
- Ne gère que les caractères ASCII dans la gestion des `Locations`.
- Si une adresse n'est pas trouvée, les coordonnées correspondantes sont invalides. Il faut supprimer l'adresse et la recréer avec des valeurs correctement géocodées, autrement l'adresse reste en erreur et bloque toutes les recherches par la suite.
Sources et communauté
Code simple facile à appréhender. La partie javascript manque un peu d'options de configuration, ex.: couleur de la zone de recherche. C'est un bon exemple d'extension pour la gestion d'adresse dans une application.
Pas de follower pour le moment sur les différents repository.
Commentaires
Cette librairie facilite la gestion des points d'intérêts. Elle est simple à installer et à prendre en main.
Malheureusement elle ne gère pas les caractère unicode dans les adresses. De plus quelques bugs bloquants rendent sont utilisation moins attrayante, ex.: adresse invalide.
Le projet est encore jeune et encore assez basic. Dommage de ne pouvoir passer des options supplémentaires au client javascript ou bien de ne pas avoir plus d'exemples, ex.: gestion de la zone de recherche, gestion des `attributes`.
Pas de follower encore, pourquoi ne pas être les premiers.
Note
Installation 4 Administration 2 Utilisation 2 Intérêt 4 ---- -- Total 12/20