diff --git a/brouter-server/src/main/java/btools/server/RouteServer.java b/brouter-server/src/main/java/btools/server/RouteServer.java index 27da0c9..bb5e98c 100644 --- a/brouter-server/src/main/java/btools/server/RouteServer.java +++ b/brouter-server/src/main/java/btools/server/RouteServer.java @@ -200,27 +200,6 @@ public class RouteServer extends Thread implements Comparable { } routingParamCollector.setParams(rc, wplist, params); - for (Map.Entry e : params.entrySet()) { - if ("engineMode".equals(e.getKey())) { - engineMode = Integer.parseInt(e.getValue()); - } else if ("timode".equals(e.getKey())) { - rc.turnInstructionMode = Integer.parseInt(e.getValue()); - } else if ("heading".equals(e.getKey())) { - rc.startDirection = Integer.parseInt(e.getValue()); - rc.forceUseStartDirection = true; - } else if (e.getKey().startsWith("profile:")) { - if (rc.keyValues == null) { - rc.keyValues = new HashMap<>(); - } - rc.keyValues.put(e.getKey().substring(8), e.getValue()); - } else if (e.getKey().equals("straight")) { - String[] sa = e.getValue().split(","); - for (int i = 0; i < sa.length; i++) { - int v = Integer.parseInt(sa[i]); - if (wplist.size() > v) wplist.get(v).direct = true; - } - } - } cr = new RoutingEngine(null, null, serviceContext.segmentDir, wplist, rc, engineMode); cr.quite = true; cr.doRun(maxRunningTime); diff --git a/brouter-server/src/main/java/btools/server/request/RequestHandler.java b/brouter-server/src/main/java/btools/server/request/RequestHandler.java index 5364c5b..6fbb816 100644 --- a/brouter-server/src/main/java/btools/server/request/RequestHandler.java +++ b/brouter-server/src/main/java/btools/server/request/RequestHandler.java @@ -1,9 +1,7 @@ package btools.server.request; -import java.util.List; import java.util.Map; -import btools.router.OsmNodeNamed; import btools.router.OsmTrack; import btools.router.RoutingContext; import btools.server.ServiceContext; @@ -19,8 +17,6 @@ public abstract class RequestHandler { public abstract RoutingContext readRoutingContext(); - public abstract List readWayPointList(); - public abstract String formatTrack(OsmTrack track); public abstract String getMimeType(); diff --git a/brouter-server/src/main/java/btools/server/request/ServerHandler.java b/brouter-server/src/main/java/btools/server/request/ServerHandler.java index fb8f520..898121c 100644 --- a/brouter-server/src/main/java/btools/server/request/ServerHandler.java +++ b/brouter-server/src/main/java/btools/server/request/ServerHandler.java @@ -3,12 +3,8 @@ package btools.server.request; import java.io.BufferedWriter; import java.io.File; import java.io.StringWriter; -import java.util.ArrayList; -import java.util.List; import java.util.Map; -import btools.router.OsmNodeNamed; -import btools.router.OsmNogoPolygon; import btools.router.OsmTrack; import btools.router.RoutingContext; import btools.server.ServiceContext; @@ -62,59 +58,9 @@ public class ServerHandler extends RequestHandler { } rc.localFunction = profile; - rc.setAlternativeIdx(Integer.parseInt(params.get("alternativeidx"))); - - List poisList = readPoisList(); - rc.poipoints = poisList; - - List nogoList = readNogoList(); - List nogoPolygonsList = readNogoPolygons(); - - if (nogoList != null) { - RoutingContext.prepareNogoPoints(nogoList); - rc.nogopoints = nogoList; - } - - if (rc.nogopoints == null) { - rc.nogopoints = nogoPolygonsList; - } else if (nogoPolygonsList != null) { - rc.nogopoints.addAll(nogoPolygonsList); - } - return rc; } - @Override - public List readWayPointList() { - // lon,lat|... - String lonLats = params.get("lonlats"); - if (lonLats == null) throw new IllegalArgumentException("lonlats parameter not set"); - - String[] coords = lonLats.split("\\|"); - if (coords.length < 2) - throw new IllegalArgumentException("we need two lat/lon points at least!"); - - List wplist = new ArrayList<>(); - for (int i = 0; i < coords.length; i++) { - String[] lonLat = coords[i].split(","); - if (lonLat.length < 2) - throw new IllegalArgumentException("we need two lat/lon points at least!"); - wplist.add(readPosition(lonLat[0], lonLat[1], "via" + i)); - if (lonLat.length > 2) { - if (lonLat[2].equals("d")) { - wplist.get(wplist.size()-1).direct = true; - } else { - wplist.get(wplist.size()-1).name = lonLat[2]; - } - } - } - - if (wplist.get(0).name.startsWith("via")) wplist.get(0).name = "from"; - if (wplist.get(wplist.size() - 1).name.startsWith("via")) wplist.get(wplist.size() - 1).name = "to"; - - return wplist; - } - @Override public String formatTrack(OsmTrack track) { String result; @@ -191,115 +137,4 @@ public class ServerHandler extends RequestHandler { return params.get("trackname") == null ? null : params.get("trackname").replaceAll("[^a-zA-Z0-9 \\._\\-]+", ""); } - private static OsmNodeNamed readPosition(String vlon, String vlat, String name) { - if (vlon == null) throw new IllegalArgumentException("lon " + name + " not found in input"); - if (vlat == null) throw new IllegalArgumentException("lat " + name + " not found in input"); - - return readPosition(Double.parseDouble(vlon), Double.parseDouble(vlat), name); - } - - private static OsmNodeNamed readPosition(double lon, double lat, String name) { - OsmNodeNamed n = new OsmNodeNamed(); - n.name = name; - n.ilon = (int) ((lon + 180.) * 1000000. + 0.5); - n.ilat = (int) ((lat + 90.) * 1000000. + 0.5); - return n; - } - - private List readPoisList() { - // lon,lat,name|... - String pois = params.get("pois"); - if (pois == null) return null; - - String[] lonLatNameList = pois.split("\\|"); - - List poisList = new ArrayList<>(); - for (int i = 0; i < lonLatNameList.length; i++) { - String[] lonLatName = lonLatNameList[i].split(","); - - if (lonLatName.length != 3) - continue; - - OsmNodeNamed n = new OsmNodeNamed(); - n.ilon = (int) ((Double.parseDouble(lonLatName[0]) + 180.) * 1000000. + 0.5); - n.ilat = (int) ((Double.parseDouble(lonLatName[1]) + 90.) * 1000000. + 0.5); - n.name = lonLatName[2]; - poisList.add(n); - } - - return poisList; - } - - private List readNogoList() { - // lon,lat,radius|... - String nogos = params.get("nogos"); - if (nogos == null) return null; - - String[] lonLatRadList = nogos.split("\\|"); - - List nogoList = new ArrayList<>(); - for (int i = 0; i < lonLatRadList.length; i++) { - String[] lonLatRad = lonLatRadList[i].split(","); - String nogoWeight = "NaN"; - if (lonLatRad.length > 3) { - nogoWeight = lonLatRad[3]; - } - nogoList.add(readNogo(lonLatRad[0], lonLatRad[1], lonLatRad[2], nogoWeight)); - } - - return nogoList; - } - - private static OsmNodeNamed readNogo(String lon, String lat, String radius, String nogoWeight) { - double weight = "undefined".equals(nogoWeight) ? Double.NaN : Double.parseDouble(nogoWeight); - return readNogo(Double.parseDouble(lon), Double.parseDouble(lat), Integer.parseInt(radius), weight); - } - - private static OsmNodeNamed readNogo(double lon, double lat, int radius, double nogoWeight) { - OsmNodeNamed n = new OsmNodeNamed(); - n.name = "nogo" + radius; - n.ilon = (int) ((lon + 180.) * 1000000. + 0.5); - n.ilat = (int) ((lat + 90.) * 1000000. + 0.5); - n.isNogo = true; - n.nogoWeight = nogoWeight; - return n; - } - - private List readNogoPolygons() { - List result = new ArrayList<>(); - parseNogoPolygons(params.get("polylines"), result, false); - parseNogoPolygons(params.get("polygons"), result, true); - return result.size() > 0 ? result : null; - } - - private static void parseNogoPolygons(String polygons, List result, boolean closed) { - if (polygons != null) { - String[] polygonList = polygons.split("\\|"); - for (int i = 0; i < polygonList.length; i++) { - String[] lonLatList = polygonList[i].split(","); - if (lonLatList.length > 1) { - OsmNogoPolygon polygon = new OsmNogoPolygon(closed); - int j; - for (j = 0; j < 2 * (lonLatList.length / 2) - 1; ) { - String slon = lonLatList[j++]; - String slat = lonLatList[j++]; - int lon = (int) ((Double.parseDouble(slon) + 180.) * 1000000. + 0.5); - int lat = (int) ((Double.parseDouble(slat) + 90.) * 1000000. + 0.5); - polygon.addVertex(lon, lat); - } - - String nogoWeight = "NaN"; - if (j < lonLatList.length) { - nogoWeight = lonLatList[j]; - } - polygon.nogoWeight = Double.parseDouble(nogoWeight); - - if (polygon.points.size() > 0) { - polygon.calcBoundingCircle(); - result.add(polygon); - } - } - } - } - } }