User:FrViPofm/Operator hack
Vous voulez ouvrir les microformats geo ou hCard directement dans OSM ?
Michael Kaply a écrit l'extension Operator qui traite les microformats et le web sémantique. Cette extension contient 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 qui ouvre et explore les fichiers .jar, format des extensions de Firefox.
Quelques connaisseurs des plateformes Linux et Windows compléteront.
É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/Applicationsupport/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.
Tester
Relancez Firefox avec l'extension Operator modifiée active. Allez sur la page 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...