code: public Geometry fromTransferObject(GeoJsonTo input, CrsId crsId) throws IllegalArgumentException {
  
          if (input instanceof PointTo) {
              return fromTransferObject((PointTo) input, crsId);
          } else if (input instanceof MultiPointTo) {
              return fromTransferObject((MultiPointTo) input, crsId);
          } else if (input instanceof LineStringTo) {
              return fromTransferObject((LineStringTo) input, crsId);
          } else if (input instanceof MultiLineStringTo) {
              return fromTransferObject((MultiLineStringTo) input, crsId);
          } else if (input instanceof PolygonTo) {
              return fromTransferObject((PolygonTo) input, crsId);
          } else if (input instanceof MultiPolygonTo) {
              return fromTransferObject((MultiPolygonTo) input, crsId);
          } else if (input instanceof GeometryCollectionTo) {
              return fromTransferObject((GeometryCollectionTo) input, crsId);
          }
          return null;
      }
docs: Creates a geolatte geometry object starting from a GeoJsonTo.
  
  @param input the geojson to to start from
  @param crsId the crs id to use (ignores the crs of the input). If null, uses the crs of the input.
  @return the corresponding geometry
  @throws IllegalArgumentException If the geometry could not be constructed due to an invalid
  geojsonto