private GeometryEnvelope readEnvelope(int envelopeIndicator,
			ByteReader reader) {

		GeometryEnvelope envelope = null;

		if (envelopeIndicator > 0) {

			// Read x and y values and create envelope
			double minX = reader.readDouble();
			double maxX = reader.readDouble();
			double minY = reader.readDouble();
			double maxY = reader.readDouble();

			boolean hasZ = false;
			Double minZ = null;
			Double maxZ = null;

			boolean hasM = false;
			Double minM = null;
			Double maxM = null;

			// Read z values
			if (envelopeIndicator == 2 || envelopeIndicator == 4) {
				hasZ = true;
				minZ = reader.readDouble();
				maxZ = reader.readDouble();
			}

			// Read m values
			if (envelopeIndicator == 3 || envelopeIndicator == 4) {
				hasM = true;
				minM = reader.readDouble();
				maxM = reader.readDouble();
			}

			envelope = new GeometryEnvelope(hasZ, hasM);

			envelope.setMinX(minX);
			envelope.setMaxX(maxX);
			envelope.setMinY(minY);
			envelope.setMaxY(maxY);

			if (hasZ) {
				envelope.setMinZ(minZ);
				envelope.setMaxZ(maxZ);
			}

			if (hasM) {
				envelope.setMinM(minM);
				envelope.setMaxM(maxM);
			}
		}

		return envelope;
	}
private GeometryEnvelope readEnvelope ( int envelopeIndicator , ByteReader reader ) { GeometryEnvelope envelope = null ; if ( envelopeIndicator > 0 ) { double minX = reader . readDouble ( ) ; double maxX = reader . readDouble ( ) ; double minY = reader . readDouble ( ) ; double maxY = reader . readDouble ( ) ; boolean hasZ = false ; Double minZ = null ; Double maxZ = null ; boolean hasM = false ; Double minM = null ; Double maxM = null ; if ( envelopeIndicator == 2 || envelopeIndicator == 4 ) { hasZ = true ; minZ = reader . readDouble ( ) ; maxZ = reader . readDouble ( ) ; } if ( envelopeIndicator == 3 || envelopeIndicator == 4 ) { hasM = true ; minM = reader . readDouble ( ) ; maxM = reader . readDouble ( ) ; } envelope = new GeometryEnvelope ( hasZ , hasM ) ; envelope . setMinX ( minX ) ; envelope . setMaxX ( maxX ) ; envelope . setMinY ( minY ) ; envelope . setMaxY ( maxY ) ; if ( hasZ ) { envelope . setMinZ ( minZ ) ; envelope . setMaxZ ( maxZ ) ; } if ( hasM ) { envelope . setMinM ( minM ) ; envelope . setMaxM ( maxM ) ; } } return envelope ; }
Read the envelope based upon the indicator value

@param envelopeIndicator
envelope indicator
@param reader
byte reader
@return geometry envelope