docs: protected void prepareImplicitWayRelations(TDWay tdWay) {
          if (tdWay.isCoastline()) {
              // find matching tiles on zoom level 12
              Set<TileCoordinate> coastLineTiles = GeoUtils.mapWayToTiles(tdWay, TileInfo.TILE_INFO_ZOOMLEVEL, 0);
              for (TileCoordinate tileCoordinate : coastLineTiles) {
                  TLongHashSet coastlines = this.tilesToCoastlines.get(tileCoordinate);
                  if (coastlines == null) {
                      coastlines = new TLongHashSet();
                      this.tilesToCoastlines.put(tileCoordinate, coastlines);
                  }
                  coastlines.add(tdWay.getId());
              }
          } else if (this.tagValues) {
              if (tdWay.isRootElement()) {
                  Set<TileCoordinate> rootTiles = GeoUtils.mapWayToTiles(tdWay, TileInfo.TILE_INFO_ZOOMLEVEL, 0);
                  for (TileCoordinate tileCoordinate : rootTiles) {
                      TLongHashSet roots = this.tilesToRootElements.get(tileCoordinate);
                      if (roots == null) {
                          roots = new TLongHashSet();
                          this.tilesToRootElements.put(tileCoordinate, roots);
                      }
                      roots.add(tdWay.getId());
                  }
              } else if (tdWay.isPartElement()) {
                  Set<TileCoordinate> partTiles = GeoUtils.mapWayToTiles(tdWay, TileInfo.TILE_INFO_ZOOMLEVEL, 0);
                  for (TileCoordinate tileCoordinate : partTiles) {
                      TLongHashSet parts = this.tilesToPartElements.get(tileCoordinate);
                      if (parts == null) {
                          parts = new TLongHashSet();
                          this.tilesToPartElements.put(tileCoordinate, parts);
                      }
                      parts.add(tdWay.getId());
                  }
              }
          }
      }