public Geometry read(InStream is) throws IOException {
ByteOrderDataInStream dis = new ByteOrderDataInStream(is);
dis.setOrder(ByteOrderValues.LITTLE_ENDIAN);
srid = dis.readInt();
version = dis.readByte();
serializationProps = dis.readByte();
hasZ = (serializationProps & 1) == 1;
hasM = (serializationProps & 2) == 2;
singlePoint = (serializationProps & 8) == 8;
singleLine = (serializationProps & 16) == 16;