docs: public static Set<TileCoordinate> mapWayToTiles(final TDWay way, final byte baseZoomLevel,
                                                      final int enlargementInMeter) {
          if (way == null) {
              LOGGER.fine("way is null in mapping to tiles");
              return Collections.emptySet();
          }
  
          HashSet<TileCoordinate> matchedTiles = new HashSet<>();
          Geometry wayGeometry = JTSUtils.toJTSGeometry(way);
          if (wayGeometry == null) {
              way.setInvalid(true);
              LOGGER.fine("unable to create geometry from way: " + way.getId());
              return matchedTiles;
          }
  
          TileCoordinate[] bbox = getWayBoundingBox(way, baseZoomLevel, enlargementInMeter);
          // calculate the tile coordinates and the corresponding bounding boxes
          try {
              for (int k = bbox[0].getX(); k <= bbox[1].getX(); k++) {
                  for (int l = bbox[0].getY(); l <= bbox[1].getY(); l++) {
                      Geometry bboxGeometry = tileToJTSGeometry(k, l, baseZoomLevel, enlargementInMeter);
                      if (bboxGeometry.intersects(wayGeometry)) {
                          matchedTiles.add(new TileCoordinate(k, l, baseZoomLevel));
                      }
                  }
              }
          } catch (TopologyException e) {
              LOGGER.fine("encountered error during mapping of a way to corresponding tiles, way id: " + way.getId());
              return Collections.emptySet();
          }
  
          return matchedTiles;
      }