diff --git a/web/src/main/webapp/js/main-template.js b/web/src/main/webapp/js/main-template.js index feb5d3a5ba1..5f804e0afd1 100644 --- a/web/src/main/webapp/js/main-template.js +++ b/web/src/main/webapp/js/main-template.js @@ -555,6 +555,14 @@ function routeLatLng(request, doQuery) { }; }; + if(json.paths.length > 0 && json.paths[0].points_order) { + mapLayer.clearLayers(); + var po = json.paths[0].points_order; + for (var i = 0; i < po.length; i++) { + setFlag(ghRequest.route.getIndex(po[i]), i); + } + } + for (var pathIndex = 0; pathIndex < json.paths.length; pathIndex++) { var tabHeader = $("
  • ").append((pathIndex + 1) + ""); if (pathIndex === 0) diff --git a/web/src/main/webapp/js/main.js b/web/src/main/webapp/js/main.js index c514c0dd83c..faeec0306d3 100644 --- a/web/src/main/webapp/js/main.js +++ b/web/src/main/webapp/js/main.js @@ -66,7 +66,7 @@ L.NumberedDivIcon=L.Icon.extend({options:{iconUrl:"./img/marker_hole.png",number },{}],20:[function(require,module,exports){ (function (global){ -function initFromParams(e,t){ghRequest.init(e);var o,r=0;if(e.point)for(var a=0;a=2;n?resolveCoords(e.point,t):e.point&&1===r&&(ghRequest.route.set(e.point[o],o,!0),resolveIndex(o).done(function(){mapLayer.focus(ghRequest.route.getIndex(o),15,o)}))}function resolveCoords(e,t){for(var o=0,r=e.length;o div.pointDiv").length>t&&$("#locationpoints > div.pointDiv:gt("+(t-1)+")").remove(),$("#locationpoints .pointDelete").off();for(var o=function(){var e=$(this).parent().data("index");ghRequest.route.removeSingle(e),mapLayer.clearLayers(),routeLatLng(ghRequest,!1)},r=0;r div.pointDiv").eq(r);0===a.length&&($("#locationpoints > div.pointAdd").before(translate.nanoTemplate(e,{id:r})),a=$("#locationpoints > div.pointDiv").eq(r));var n=getToFrom(r);if(a.data("index",r),a.find(".pointFlag").attr("src",n===FROM?"img/marker-small-green.png":n===TO?"img/marker-small-red.png":"img/marker-small-blue.png"),t>2?a.find(".pointDelete").click(o).prop("disabled",!1).removeClass("ui-state-disabled"):a.find(".pointDelete").prop("disabled",!0).addClass("ui-state-disabled"),autocomplete.showListForIndex(ghRequest,routeIfAllResolved,r),translate.isI18nIsInitialized()){var s=a.find(".pointInput");0===r?$(s).attr("placeholder",translate.tr("from_hint")):r===t-1?$(s).attr("placeholder",translate.tr("to_hint")):$(s).attr("placeholder",translate.tr("via_hint"))}}}function setToStart(e){var t=e.relatedTarget.getLatLng(),o=ghRequest.route.getIndexByCoord(t);ghRequest.route.move(o,0),routeIfAllResolved()}function setToEnd(e){var t=e.relatedTarget.getLatLng(),o=ghRequest.route.getIndexByCoord(t);ghRequest.route.move(o,-1),routeIfAllResolved()}function setStartCoord(e){ghRequest.route.set(e.latlng.wrap(),0),resolveFrom(),routeIfAllResolved()}function setIntermediateCoord(e){var t=mapLayer.getSubLayers("route"),o=t.map(function(e){return{coordinates:e.getLatLngs(),wayPoints:e.feature.properties.snapped_waypoints.coordinates.map(function(e){return L.latLng(e[1],e[0])})}}),r=routeManipulation.getIntermediatePointIndex(o,e.latlng);ghRequest.route.add(e.latlng.wrap(),r),resolveIndex(r),routeIfAllResolved()}function deleteCoord(e){var t=e.relatedTarget.getLatLng();ghRequest.route.removeSingle(t),mapLayer.clearLayers(),routeLatLng(ghRequest,!1)}function setEndCoord(e){var t=ghRequest.route.size()-1;ghRequest.route.set(e.latlng.wrap(),t),resolveTo(),routeIfAllResolved()}function routeIfAllResolved(e){return!!ghRequest.route.isResolved()&&(routeLatLng(ghRequest,e),!0)}function setFlag(e,t){if(e.lat){var o=getToFrom(t),r=mapLayer.createMarker(t,e,setToEnd,setToStart,deleteCoord,ghRequest);r._openPopup=r.openPopup,r.openPopup=function(){var e,t=this.getLatLng(),o=ghRequest.route.getIndexFromCoord(t);if(o.resolvedList&&o.resolvedList[0]&&o.resolvedList[0].locationDetails){var r=o.resolvedList[0].locationDetails;e=format.formatAddress(r),this._popup.setContent(e).update()}this._openPopup()};var a={text:translate.tr("set_start"),icon:"./img/marker-small-green.png",callback:setToStart,index:1};o===-1&&r.options.contextmenuItems.push(a),r.on("dragend",function(e){mapLayer.clearLayers();var o=e.target.getLatLng();autocomplete.hide(),ghRequest.route.getIndex(t).setCoord(o.lat,o.lng),resolveIndex(t),ghRequest.do_zoom=!1,routeLatLng(ghRequest,!1)})}}function resolveFrom(){return resolveIndex(0)}function resolveTo(){return resolveIndex(ghRequest.route.size()-1)}function resolveIndex(e){return setFlag(ghRequest.route.getIndex(e),e),0===e?ghRequest.to.isResolved()?mapLayer.setDisabledForMapsContextMenu("start",!1):mapLayer.setDisabledForMapsContextMenu("start",!0):e===ghRequest.route.size()-1&&(ghRequest.from.isResolved()?mapLayer.setDisabledForMapsContextMenu("end",!1):mapLayer.setDisabledForMapsContextMenu("end",!0)),nominatim.resolve(e,ghRequest.route.getIndex(e))}function resolveAll(){for(var e=[],t=0,o=ghRequest.route.size();t");n.append(s),mapLayer.clearElevation(),mapLayer.clearLayers(),flagAll(),mapLayer.setDisabledForMapsContextMenu("intermediate",!1),$("#vehicles button").removeClass("selectvehicle"),$("button#"+e.getVehicle().toLowerCase()).addClass("selectvehicle");var i=e.createURL();s.html(' Search Route ...'),e.doRequest(i,function(t){function a(e,t,o,r,a,n){return function(){var i=e[t];mapLayer.eachLayer(function(e){if(e.setStyle){var t=e.feature===i;e.setStyle(t?d:c),t&&(L.Browser.ie||L.Browser.opera||e.bringToFront())}}),a&&(mapLayer.clearElevation(),mapLayer.addElevation(i,n)),l.find("li").removeClass("current"),s.find("div").removeClass("current"),o.addClass("current"),r.addClass("current")}}if(s.html(""),t.message){var n=t.message;if(console.log(n),t.hints)for(var i=0;i"+t.hints[i].message+"");else s.append("
    "+n+"
    ")}else{var l=$("
      ");t.paths.length>1&&(s.append(l),s.append("
      "));for(var u,p={color:"#00cc33",weight:5,opacity:.6},d={color:"#00cc33",weight:6,opacity:.8},c={color:"darkgray",weight:6,opacity:.8},g=[],h=function(e){return function(){mapLayer.updateScale(e),ghRequest.useMiles=e,resolveAll(),routeLatLng(ghRequest)}},m=0;m").append(m+1+"");0===m&&(u=v),l.append(v);var f=t.paths[m],q=0===m?p:c,y={type:"Feature",geometry:f.points,properties:{style:q,name:"route",snapped_waypoints:f.snapped_waypoints}};g.push(y),mapLayer.addDataToRoutingLayer(y);var b=$("
      ");s.append(b),v.click(a(g,m,v,b,e.hasElevation(),e.useMiles));var R=translate.createTimeString(f.time),x=translate.createDistanceString(f.distance,e.useMiles),I=$("
      ");f.description&&f.description.length>0&&(I.text(f.description),I.append("
      ")),I.append(translate.tr("route_info",[x,R]));var _=$("
      ");else s.append("
      "+n+"
      ")}else{var l=$("
        ");t.paths.length>1&&(s.append(l),s.append("
        "));var u,p={color:"#00cc33",weight:5,opacity:.6},d={color:"#00cc33",weight:6,opacity:.8},c={color:"darkgray",weight:6,opacity:.8},g=[],h=function(e){return function(){mapLayer.updateScale(e),ghRequest.useMiles=e,resolveAll(),routeLatLng(ghRequest)}};if(t.paths.length>0&&t.paths[0].points_order){mapLayer.clearLayers();for(var v=t.paths[0].points_order,m=0;m").append(f+1+"");0===f&&(u=q),l.append(q);var y=t.paths[f],b=0===f?p:c,R={type:"Feature",geometry:y.points,properties:{style:b,name:"route",snapped_waypoints:y.snapped_waypoints}};g.push(R),mapLayer.addDataToRoutingLayer(R);var x=$("
        ");s.append(x),q.click(a(g,f,q,x,e.hasElevation(),e.useMiles));var I=translate.createTimeString(y.time),_=translate.createDistanceString(y.distance,e.useMiles),w=$("
        ");y.description&&y.description.length>0&&(w.text(y.description),w.append("
        ")),w.append(translate.tr("route_info",[_,I]));var C=$("