fix parsing and generics errors

This commit is contained in:
ntruchsess 2018-01-23 23:57:17 +01:00
parent f30ba74ac1
commit 144c0018de
2 changed files with 19 additions and 7 deletions

View file

@ -27,6 +27,11 @@ import java.util.List;
public class OsmNogoPolygon extends OsmNodeNamed public class OsmNogoPolygon extends OsmNodeNamed
{ {
public OsmNogoPolygon()
{
isNogo = true;
}
private final static class Point private final static class Point
{ {
final int y; final int y;

View file

@ -62,10 +62,17 @@ public class ServerHandler extends RequestHandler {
rc.nogopoints = nogoList; rc.nogopoints = nogoList;
} }
List<OsmNogoPolygon> nogoPolygonsList = readNogoPolygons(); List<OsmNodeNamed> nogoPolygonsList = readNogoPolygons();
if ( nogoPolygonsList != null ) if ( nogoPolygonsList != null )
{ {
rc.nogopoints.addAll(nogoPolygonsList); if (rc.nogopoints == null)
{
rc.nogopoints = nogoPolygonsList;
}
else
{
rc.nogopoints.addAll(nogoPolygonsList);
}
} }
return rc; return rc;
@ -233,22 +240,22 @@ public class ServerHandler extends RequestHandler {
return n; return n;
} }
private List<OsmNogoPolygon> readNogoPolygons() private List<OsmNodeNamed> readNogoPolygons()
{ {
String polygons = params.get( "polygons" ); String polygons = params.get( "polygons" );
if ( polygons == null ) return null; if ( polygons == null ) return null;
String[] polygonList = polygons.split("\\|"); String[] polygonList = polygons.split("\\|");
List<OsmNogoPolygon> nogoPolygonList = new ArrayList<OsmNogoPolygon>(); List<OsmNodeNamed> nogoPolygonList = new ArrayList<OsmNodeNamed>();
for (int i = 0; i < polygonList.length; i++) for (int i = 0; i < polygonList.length; i++)
{ {
String[] lonLatList = polygonList[i].split(","); String[] lonLatList = polygonList[i].split(",");
OsmNogoPolygon polygon = new OsmNogoPolygon(); 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 slon = lonLatList[j++];
String slat = lonLatList[i]; String slat = lonLatList[j++];
int lon = (int)( ( Double.parseDouble(slon) + 180. ) *1000000. + 0.5); int lon = (int)( ( Double.parseDouble(slon) + 180. ) *1000000. + 0.5);
int lat = (int)( ( Double.parseDouble(slat) + 90. ) *1000000. + 0.5); int lat = (int)( ( Double.parseDouble(slat) + 90. ) *1000000. + 0.5);
polygon.addVertex(lon, lat); polygon.addVertex(lon, lat);