The WKBWriter constructor expects output dimension (e.g. new WKBWriter(dimension, ByteOrderValues.LITTLE_ENDIAN, true)) and it has to be either 2 or 3. However, Geometry#getDimension is not appropriate to use here. Is there a generic way to determine the dimension for a given Geometry object? In other words, is there such method that satisfies the following:
#getDimension(GEOMETRY_FACTORY.createPoint(new Coordinate(1,2))) -> 2
#getDimension(GEOMETRY_FACTORY.createPoint(new Coordinate(1,2,3))) -> 3
#getDimension(GEOMETRY_FACTORY.createPolygon(new Coordinate[]{new Coordinate(1,2,3), new Coordinate(2,2,3), new Coordinate(2,3,3), new Coordinate(1,2,3)})) -> 3
#getDimension(GEOMETRY_FACTORY.createMultiPolygon(new Polygon[]{GEOMETRY_FACTORY.createPolygon(new Coordinate[]{new Coordinate(1,2,3), new Coordinate(2,2,3), new Coordinate(2,3,3), new Coordinate(1,2,3)})})) -> 3
where #getDimension accepts Geometry.
The
WKBWriterconstructor expects output dimension (e.g.new WKBWriter(dimension, ByteOrderValues.LITTLE_ENDIAN, true)) and it has to be either 2 or 3. However,Geometry#getDimensionis not appropriate to use here. Is there a generic way to determine the dimension for a givenGeometryobject? In other words, is there such method that satisfies the following:#getDimension(GEOMETRY_FACTORY.createPoint(new Coordinate(1,2)))->2#getDimension(GEOMETRY_FACTORY.createPoint(new Coordinate(1,2,3)))->3#getDimension(GEOMETRY_FACTORY.createPolygon(new Coordinate[]{new Coordinate(1,2,3), new Coordinate(2,2,3), new Coordinate(2,3,3), new Coordinate(1,2,3)}))->3#getDimension(GEOMETRY_FACTORY.createMultiPolygon(new Polygon[]{GEOMETRY_FACTORY.createPolygon(new Coordinate[]{new Coordinate(1,2,3), new Coordinate(2,2,3), new Coordinate(2,3,3), new Coordinate(1,2,3)})}))->3where
#getDimensionacceptsGeometry.