docs: public void fillEdgeIDs(GHIntHashSet edgeIds, Geometry geometry, EdgeFilter filter) {
          if (geometry instanceof Point) {
              GHPoint point = GHPoint.create((Point) geometry);
              findClosestEdgeToPoint(edgeIds, point, filter);
          } else if (geometry instanceof LineString) {
              PointList pl = PointList.fromLineString((LineString) geometry);
              // TODO do map matching or routing
              int lastIdx = pl.size() - 1;
              if (pl.size() >= 2) {
                  double meanLat = (pl.getLatitude(0) + pl.getLatitude(lastIdx)) / 2;
                  double meanLon = (pl.getLongitude(0) + pl.getLongitude(lastIdx)) / 2;
                  findClosestEdge(edgeIds, meanLat, meanLon, filter);
              }
          } else if (geometry instanceof MultiPoint) {
              for (Coordinate coordinate : geometry.getCoordinates()) {
                  findClosestEdge(edgeIds, coordinate.y, coordinate.x, filter);
              }
          }
      }