diff --git a/brouter-core/src/main/java/btools/router/OsmNogoPolygon.java b/brouter-core/src/main/java/btools/router/OsmNogoPolygon.java index 6e467ea..8172257 100644 --- a/brouter-core/src/main/java/btools/router/OsmNogoPolygon.java +++ b/brouter-core/src/main/java/btools/router/OsmNogoPolygon.java @@ -27,6 +27,11 @@ import java.util.List; public class OsmNogoPolygon extends OsmNodeNamed { + public OsmNogoPolygon() + { + isNogo = true; + } + private final static class Point { final int y; 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 a0d1f4d..6b36ee4 100644 --- a/brouter-server/src/main/java/btools/server/request/ServerHandler.java +++ b/brouter-server/src/main/java/btools/server/request/ServerHandler.java @@ -62,10 +62,17 @@ public class ServerHandler extends RequestHandler { rc.nogopoints = nogoList; } - List nogoPolygonsList = readNogoPolygons(); + List nogoPolygonsList = readNogoPolygons(); if ( nogoPolygonsList != null ) { - rc.nogopoints.addAll(nogoPolygonsList); + if (rc.nogopoints == null) + { + rc.nogopoints = nogoPolygonsList; + } + else + { + rc.nogopoints.addAll(nogoPolygonsList); + } } return rc; @@ -233,22 +240,22 @@ public class ServerHandler extends RequestHandler { return n; } - private List readNogoPolygons() + private List readNogoPolygons() { String polygons = params.get( "polygons" ); if ( polygons == null ) return null; String[] polygonList = polygons.split("\\|"); - List nogoPolygonList = new ArrayList(); + List nogoPolygonList = new ArrayList(); for (int i = 0; i < polygonList.length; i++) { String[] lonLatList = polygonList[i].split(","); OsmNogoPolygon polygon = new OsmNogoPolygon(); - for (int j = 0; j < lonLatList.length; j++) + for (int j = 0; j < lonLatList.length-1;) { - String slon = lonLatList[i++]; - String slat = lonLatList[i]; + 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);