1   var context_describe = function(e, map){
 
   2     var precision = OSM.zoomPrecision(map.getZoom()),
 
   3       latlng = e.latlng.wrap(),
 
   4       lat = latlng.lat.toFixed(precision),
 
   5       lng = latlng.lng.toFixed(precision);
 
   6     OSM.router.route("/search?query=" + encodeURIComponent(lat + "," + lng));
 
   9   var context_directionsfrom = function(e, map){
 
  10     var precision = OSM.zoomPrecision(map.getZoom()),
 
  11       latlng = e.latlng.wrap(),
 
  12       lat = latlng.lat.toFixed(precision),
 
  13       lng = latlng.lng.toFixed(precision);
 
  14     OSM.router.route("/directions?" + querystring.stringify({
 
  15       route: lat + ',' + lng + ';' + $('#route_to').val()
 
  19   var context_directionsto = function(e, map){
 
  20     var precision = OSM.zoomPrecision(map.getZoom()),
 
  21       latlng = e.latlng.wrap(),
 
  22       lat = latlng.lat.toFixed(precision),
 
  23       lng = latlng.lng.toFixed(precision);
 
  24     OSM.router.route("/directions?" + querystring.stringify({
 
  25       route: $('#route_from').val() + ';' + lat + ',' + lng
 
  29   var context_addnote = function(e, map){
 
  30     // I'd like this, instead of panning, to pass a query parameter about where to place the marker
 
  31     map.panTo(e.latlng.wrap(), {animate: false});
 
  32     OSM.router.route('/note/new');
 
  35   var context_centrehere = function(e, map){
 
  39   var context_queryhere = function(e, map) {
 
  40     var precision = OSM.zoomPrecision(map.getZoom()),
 
  41       latlng = e.latlng.wrap(),
 
  42       lat = latlng.lat.toFixed(precision),
 
  43       lng = latlng.lng.toFixed(precision);
 
  44     OSM.router.route("/query?lat=" + lat + "&lon=" + lng);