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