1 OSM.initializeContextMenu = function (map) {
2 map.contextmenu.addItem({
3 text: I18n.t("javascripts.context.directions_from"),
4 callback: function directionsFromHere(e) {
5 var precision = OSM.zoomPrecision(map.getZoom()),
6 latlng = e.latlng.wrap(),
7 lat = latlng.lat.toFixed(precision),
8 lng = latlng.lng.toFixed(precision);
10 OSM.router.route("/directions?" + querystring.stringify({
11 from: lat + "," + lng,
12 to: $("#route_to").val()
17 map.contextmenu.addItem({
18 text: I18n.t("javascripts.context.directions_to"),
19 callback: function directionsToHere(e) {
20 var precision = OSM.zoomPrecision(map.getZoom()),
21 latlng = e.latlng.wrap(),
22 lat = latlng.lat.toFixed(precision),
23 lng = latlng.lng.toFixed(precision);
25 OSM.router.route("/directions?" + querystring.stringify({
26 from: $("#route_from").val(),
32 map.contextmenu.addItem({
33 text: I18n.t("javascripts.context.add_note"),
34 callback: function addNoteHere(e) {
35 var precision = OSM.zoomPrecision(map.getZoom()),
36 latlng = e.latlng.wrap(),
37 lat = latlng.lat.toFixed(precision),
38 lng = latlng.lng.toFixed(precision);
40 OSM.router.route("/note/new?lat=" + lat + "&lon=" + lng);
44 map.contextmenu.addItem({
45 text: I18n.t("javascripts.context.show_address"),
46 callback: function describeLocation(e) {
47 var precision = OSM.zoomPrecision(map.getZoom()),
48 latlng = e.latlng.wrap(),
49 lat = latlng.lat.toFixed(precision),
50 lng = latlng.lng.toFixed(precision);
52 OSM.router.route("/search?whereami=1&query=" + encodeURIComponent(lat + "," + lng));
56 map.contextmenu.addItem({
57 text: I18n.t("javascripts.context.query_features"),
58 callback: function queryFeatures(e) {
59 var precision = OSM.zoomPrecision(map.getZoom()),
60 latlng = e.latlng.wrap(),
61 lat = latlng.lat.toFixed(precision),
62 lng = latlng.lng.toFixed(precision);
64 OSM.router.route("/query?lat=" + lat + "&lon=" + lng);
68 map.contextmenu.addItem({
69 text: I18n.t("javascripts.context.centre_map"),
70 callback: function centreMap(e) {
75 map.on("mousedown", function (e) {
76 if (e.originalEvent.shiftKey) map.contextmenu.disable();
77 else map.contextmenu.enable();
80 var updateMenu = function updateMenu () {
81 map.contextmenu.setDisabled(2, map.getZoom() < 12);
82 map.contextmenu.setDisabled(4, map.getZoom() < 14);
85 map.on("zoomend", updateMenu);