bugfix to store shortest distance to route within the the closest

point no longer required
This commit is contained in:
DennisSchiefer 2012-08-24 14:16:50 +01:00
parent afb70126ad
commit 94ad1003e9
2 changed files with 3 additions and 35 deletions

View File

@ -78,7 +78,7 @@ drawDragMarker: function(event) {
// get distance to route
var minpoint = OSRM.G.route._current_route.route.closestLayerPoint( event.layerPoint );
var min_dist = minpoint ? minpoint._sqDist : 1000;
var min_dist = minpoint ? minpoint.distance : 1000;
// get distance to markers
var mouse = event.latlng;
@ -109,7 +109,7 @@ drawDragMarker: function(event) {
min_dist = 1000;
}
if( min_dist < 400) {
if( min_dist < 20) {
OSRM.G.markers.dragger.setPosition( OSRM.G.map.layerPointToLatLng(minpoint) );
OSRM.G.markers.dragger.show();
} else

View File

@ -19,36 +19,4 @@ or see http://www.gnu.org/licenses/agpl.txt.
// [assorted bugfixes to Leaflet functions we use]
// return closest point on segment or distance to that point
L.LineUtil._sqClosestPointOnSegment = function (p, p1, p2, sqDist) {
var x = p1.x,
y = p1.y,
dx = p2.x - x,
dy = p2.y - y,
dot = dx * dx + dy * dy,
t;
if (dot > 0) {
t = ((p.x - x) * dx + (p.y - y) * dy) / dot;
if (t > 1) {
x = p2.x;
y = p2.y;
} else if (t > 0) {
x += dx * t;
y += dy * t;
}
}
dx = p.x - x;
dy = p.y - y;
// DS_CHANGE: modified return values
if(sqDist)
return dx*dx + dy*dy;
else {
var p = new L.Point(x,y);
p._sqDist = dx*dx + dy*dy;
return p;
}
};
// none at the moment, thanks to Leaflet 0.4+