X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/7915a22cafafc1fcbd59d798ac1734ecfd083adc..3ef8024b1d33f0de6227a26967ba78ef85672a94:/app/assets/javascripts/routing.js.erb?ds=sidebyside diff --git a/app/assets/javascripts/routing.js.erb b/app/assets/javascripts/routing.js.erb index 2a10a9d5e..42373ef9d 100644 --- a/app/assets/javascripts/routing.js.erb +++ b/app/assets/javascripts/routing.js.erb @@ -115,9 +115,12 @@ OSM.Routing=function(map,name,jqSearch) { // Drag and drop markers r.handleDrop=function(e) { - var id=e.originalEvent.dataTransfer.getData('id'); - var ll=r.map.mouseEventToLatLng(e.originalEvent); - // *** ^^^ this is slightly off - we need to work out the latLng of the tip + var oe=e.originalEvent; + var id=oe.dataTransfer.getData('id'); + var pt=L.DomEvent.getMousePosition(oe,map.getContainer()); // co-ordinates of the mouse pointer at present + pt.x+=Number(oe.dataTransfer.getData('offsetX')); + pt.y+=Number(oe.dataTransfer.getData('offsetY')); + var ll=map.containerPointToLatLng(pt); r.createMarker(ll,id); r.setNumericInput(ll,id); r.requestRoute(true, false); @@ -191,7 +194,10 @@ OSM.Routing=function(map,name,jqSearch) { $('#sidebar_content').empty(); var html=('

' + '' + I18n.t('javascripts.directions.directions') + - '

').replace(/~/g,"'"); + '

' + + I18n.t('javascripts.directions.distance') + ': ' + r.formatDistance(data.distance)+ '. ' + + I18n.t('javascripts.directions.time' ) + ': ' + r.formatTime(data.time) + '.

' + + '
').replace(/~/g,"'"); $('#sidebar_content').html(html); // Add each row var cumulative=0; @@ -221,6 +227,15 @@ OSM.Routing=function(map,name,jqSearch) { r.clickTurn=function(num,latlng) { r.popup=L.popup().setLatLng(latlng).setContent("

"+(num+1)+"

").openOn(r.map); }; + r.formatDistance=function(m) { + if (m < 1000 ) { return Math.round(m) + "m"; } + else if (m < 10000) { return (m/1000.0).toFixed(1) + "km"; } + else { return Math.round(m / 1000) + "km"; } + }; + r.formatTime=function(s) { + var d=new Date(s*1000); var h=d.getHours(); var m=d.getMinutes(); + return h+":"+(m<10 ? '0' : '')+m; + }; // Close all routing UI @@ -248,6 +263,9 @@ OSM.Routing=function(map,name,jqSearch) { script.src = url+r.name+".gotRoute"+num; document.body.appendChild(script); }; + list[num].requestCORS=function(url) { + $.ajax({ url: url, method: "GET", data: {}, dataType: 'json', success: r['gotRoute'+num] }); + }; r['gotRoute'+num]=function(data) { r.awaitingRoute=false; $(".query_wrapper.routing .spinner").hide();