From d1ad9518b0018832a58acb38800c604a643a7e82 Mon Sep 17 00:00:00 2001 From: Eric Duminil <eric.duminil@gmail.com> Date: Mon, 18 Dec 2023 14:12:18 +0100 Subject: [PATCH] Adding center too. Still wrong --- .../java/eu/simstadt/regionchooser/RegionExtractor.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/eu/simstadt/regionchooser/RegionExtractor.java b/src/main/java/eu/simstadt/regionchooser/RegionExtractor.java index bb940d4..5ed801f 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); -- GitLab