[OSM-talk-fr] [Étrennes] Firefox extension Operator: Hack OpenStreetMap
Vincent Pottier
vpottier at gmail.com
Ven 1 Jan 17:40:52 UTC 2010
Bonjour et Bonne année aux OSMeurs,
Un petit hack en guise d'étrennes.
Vous voulez ouvrir les microformats [1] geo ou hCard directement dans OSM ?
Michael Kaply a écrit l'extension Operator qui traite les microformats
[2] et le web sémantique. Cette extension contiend des instructions pour
Google, pour les formats 'geo' et 'hCard'. Plutôt que de publier une
variante de cette extension (version, licence...), je vous propose un
truc pour rendre celle-ci 'OSM complient'.
Un fichier, google.js, sera dupliqué, openstreetmap.js, et modifié, un
fichier, SemanticActions.js, sera complété.
L'opération est faite sur un mac OS 10.4 avec l'application
JarInspector [3] qui ouvre et explore les fichiers .jar, format des
extensions de Firefox.
Quelques connaisseurs des plateformes Linux et Windows compléteront.
Puis je publierai le hack sur le wiki.
Éditer les fichiers
===============
Accéder à l'extension
---------------------------
Le fichier de l'extension est situé à l'emplacement :
- linux :
~/.mozilla/firefox/*.default/extensions/{95C9A302-8557-4052-91B7-2BB6BA33C885}/chrome/operator.jar
- mac :
~/Bibliohèque/Application
support/Firefox/Profiles/*.default/extensions/{95C9A302-8557-4052-91B7-2BB6BA33C885}/chrome/operator.jar
Ouvrir l'archive avec l'application JarInspector.
Dupliquer google.js
-------------------------
Dans l'archive, trouver le fichier ./content/SemanticActions/google.js
Le copier sous le nom ./content/SemanticActions/openstreetmap.js
Modifier openstreetmap.js
---------------------------------
Ouvrir le fichier ./content/SemanticActions/openstreetmap.js avec
l'éditeur de votre choix
Voici les modifications à apporter au fichier.
ligne 3
- var google_maps = {
+ var osm_maps = {
ligne 4
- description: "Find with Google Maps",
+ description: "Find with OpenStreetMap",
ligne 5
- shortDescription: "Google Maps",
+ shortDescription: "OpenStreetMap",
ligne 6
- icon: "http://www.google.com/favicon.ico",
+ icon: "http://www.openstreetmap.org/favicon.ico",
ligne 26
- return "http://maps.google.com/maps?q=" +
Microformats.simpleEscape(semanticObject.label[propertyIndex]);
+ return "http://nominatim.openstreetmap.org/search?q=" +
Microformats.simpleEscape(semanticObject.label[propertyIndex]);
ligne 32
- url = "http://maps.google.com/maps?q=";
+ url = "http://nominatim.openstreetmap.org/search?q=";
ligne 61
- url = "http://maps.google.com/maps?ll=" +
semanticObject.latitude + "," + semanticObject.longitude + "&q=" +
semanticObject.latitude + "," + semanticObject.longitude;
+ url = "http://www.openstreetmap.org/?mlat=" +
semanticObject.latitude + "&mlon=" + semanticObject.longitude +
"&layers=B000FTF";
ligne 62, suppression
- url += " (" + semanticObject.toString().replace("(",
"[").replace(")", "]") + ")";
ligne 69 (68)
- var google_search = {
+ var osm_search = {
ligne 70 (69)
- description: "Find with Google Search",
+ description: "Find with Nominatim",
ligne 71 (70)
- shortDescription: "Google Search",
+ shortDescription: "Nominatim",
ligne 72 (71)
- icon: "http://www.google.com/favicon.ico",
+ icon: "http://www.openstreetmap.org/favicon.ico",
ligne 79 (78)
- var property = google_search.scope.semantic[semanticObjectType];
+ var property = osm_search.scope.semantic[semanticObjectType];
ligne 87 (86)
- return "http://www.google.com/search?q=" +
encodeURIComponent(searchstring);
+ return "http://nominatim.openstreetmap.org/search?q=" +
encodeURIComponent(searchstring);
lignes 93-238 (92-237) suppression
ligne 240 (92)
- SemanticActions.add("google_maps", google_maps);
+ SemanticActions.add("osm_maps", osm_maps);
ligne 241 (93)
- SemanticActions.add("google_search", google_search);
+ SemanticActions.add("osm_search", osm_search);
ligne 242 (94) suppression
-SemanticActions.add("google_calendar", google_calendar);
Sauvegarder
Compléter SemanticActions.js
---------------------------------
Ouvrir le fichier ./content/SemanticActions/SemanticActions.js avec
l'éditeur de votre choix
ligne 37, ajout
+ ojl.loadSubScript(baseurl + "openstreetmap.js");
Sauvegarder
Recréer l'archive .jar
===============
Sur Mac, la fermeture de celle-ci dans JarInspector effectue l'opération.
Relancez Firefox avec l'extension Operator modifiée active.
Allez sur la page http://wiki.openstreetmap.org/wiki/France
L'extension Operator devrait réagir et proposer d'ouvrir la carte dans
OpenStreetMap (clic droit sur 'Latitude : 47.14, Longitude : 3.21')
Attention
=======
À la mise à jour de l'extension, les modifications disparaîtront
certainement. Un peu de lobbying auprès de son auteur permettront
certainement d'obtenir l'intégration de ce hack. N'hésitez pas à lui en
parler
Je n'ai pas testé l'utilisation de nominatim. Ça devrait marcher...
théoriquement...
Bonne année et bonne carto à vous
[1] http://microformats.org/
[2] https://addons.mozilla.org/fr/firefox/addon/4106
[3] http://www.codeland.org/
--
Vincent alias FrViPofm
Plus d'informations sur la liste de diffusion Talk-fr