diff --git a/src/main/java/eu/simstadt/regionchooser/RegionExtractor.java b/src/main/java/eu/simstadt/regionchooser/RegionExtractor.java index bb940d4c1b6355e73e18b63ce22ae3fd8248b99d..5ed801fd7378d84ac7f626d2eefd3a65aac7a30d 100644 --- a/src/main/java/eu/simstadt/regionchooser/RegionExtractor.java +++ b/src/main/java/eu/simstadt/regionchooser/RegionExtractor.java @@ -101,10 +101,12 @@ static int selectRegionDirectlyFromCityGML(String wktPolygon, String srsName, Wr } /** - * Returns true if bounding box of cityObjectNode intersects the polygon. + * Returns true if corners or center of bounding box of cityObjectNode are inside the polygon. Might select too much, + * which might be desirable for roads or landuse. */ private static boolean isBoundingBoxTouching(CityObjectMember cityObjectNode, Geometry polygon) { - return point(cityObjectNode.xMax, cityObjectNode.yMax).within(polygon) || + return point(cityObjectNode.x, cityObjectNode.y).within(polygon) || + point(cityObjectNode.xMax, cityObjectNode.yMax).within(polygon) || point(cityObjectNode.xMax, cityObjectNode.yMin).within(polygon) || point(cityObjectNode.xMin, cityObjectNode.yMin).within(polygon) || point(cityObjectNode.xMin, cityObjectNode.yMax).within(polygon);