code: public GeometryIndex populate(TableIndex tableIndex, long geomId,
  			GeometryEnvelope envelope) {
  
  		GeometryIndex geometryIndex = new GeometryIndex();
  		geometryIndex.setTableIndex(tableIndex);
  		geometryIndex.setGeomId(geomId);
  		geometryIndex.setMinX(envelope.getMinX());
  		geometryIndex.setMaxX(envelope.getMaxX());
  		geometryIndex.setMinY(envelope.getMinY());
  		geometryIndex.setMaxY(envelope.getMaxY());
  		if (envelope.hasZ()) {
  			geometryIndex.setMinZ(envelope.getMinZ());
  			geometryIndex.setMaxZ(envelope.getMaxZ());
  		}
  		if (envelope.hasM()) {
  			geometryIndex.setMinM(envelope.getMinM());
  			geometryIndex.setMaxM(envelope.getMaxM());
  		}
  		return geometryIndex;
  	}
docs: Populate a new geometry index from an envelope
  
  @param tableIndex
  table index
  @param geomId
  geometry id
  @param envelope
  geometry envelope
  @return geometry index