User:FrViPofm/Operator hack

From OpenStreetMap Wiki
Jump to: navigation, search

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...

Notes