/* This program is free software; you can redistribute it and/or modify it under the terms of the GNU AFFERO General Public License as published by the Free Software Foundation; either version 3 of the License, or any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or see http://www.gnu.org/licenses/agpl.txt. */ // OSRM via marker routines // [find correct position for a via marker] // store location of via points returned by server OSRM.GLOBALS.via_points = null; OSRM.Via = { // find route segment of current route geometry that is closest to the new via node (marked by index of its endpoint) _findNearestRouteSegment: function( new_via ) { var min_dist = Number.MAX_VALUE; var min_index = undefined; var p = OSRM.G.map.latLngToLayerPoint( new_via ); var positions = OSRM.G.route.getPoints(); for(var i=1; i nearest_index) { new_via_index = i; break; } } // add via node return new_via_index; }, //function that draws a drag marker dragTimer: new Date(), drawDragMarker: function(event) { if( OSRM.G.route.isShown() == false) return; if( OSRM.G.dragging == true ) return; // throttle computation if( (new Date() - OSRM.Via.dragTimer) < 25 ) return; OSRM.Via.dragTimer = new Date(); // get distance to route var minpoint = OSRM.G.route._current_route.route.closestLayerPoint( event.layerPoint ); var min_dist = minpoint._sqDist; // get distance to markers var mouse = event.latlng; for(var i=0, size=OSRM.G.markers.route.length; i