Esempio n. 1
0
void QgsSingleBandGrayRendererWidget::on_mLoadPushButton_clicked()
{
  if ( !mRasterLayer )
  {
    return;
  }
  QgsRasterDataProvider* provider = mRasterLayer->dataProvider();
  if ( !provider )
  {
    return;
  }

  int band = mGrayBandComboBox->itemData( mGrayBandComboBox->currentIndex() ).toInt();
  double minVal = 0;
  double maxVal = 0;
  if ( mEstimateRadioButton->isChecked() )
  {
    minVal = provider->minimumValue( band );
    maxVal = provider->maximumValue( band );
  }
  else if ( mActualRadioButton->isChecked() )
  {
    QgsRasterBandStats rasterBandStats = mRasterLayer->bandStatistics( band );
    minVal = rasterBandStats.minimumValue;
    maxVal = rasterBandStats.maximumValue;
  }
  else if ( mCurrentExtentRadioButton->isChecked() )
  {
    double minMax[2];
    mRasterLayer->computeMinimumMaximumFromLastExtent( band, minMax );
    minVal = minMax[0];
    maxVal = minMax[1];
  }
  else if ( mUseStdDevRadioButton->isChecked() )
  {
    QgsRasterBandStats rasterBandStats = mRasterLayer->bandStatistics( band );
    double diff = mStdDevSpinBox->value() * rasterBandStats.stdDev;
    minVal = rasterBandStats.mean - diff;
    maxVal = rasterBandStats.mean + diff;
  }
  else
  {
    return;
  }

  mMinLineEdit->setText( QString::number( minVal ) );
  mMaxLineEdit->setText( QString::number( maxVal ) );
}
void QgsMultiBandColorRendererWidget::loadMinMaxValueForBand( int band, QLineEdit* minEdit, QLineEdit* maxEdit )
{
  if ( !minEdit || !maxEdit || !mRasterLayer )
  {
    return;
  }

  QgsRasterDataProvider* provider = mRasterLayer->dataProvider();
  if ( !provider )
  {
    return;
  }

  if ( band < 0 )
  {
    minEdit->clear();
    maxEdit->clear();
    return;
  }

  double minVal = 0;
  double maxVal = 0;
  if ( mEstimateRadioButton->isChecked() )
  {
    minVal = provider->minimumValue( band );
    maxVal = provider->maximumValue( band );
  }
  else if ( mActualRadioButton->isChecked() )
  {
    QgsRasterBandStats rasterBandStats = mRasterLayer->bandStatistics( band );
    minVal = rasterBandStats.minimumValue;
    maxVal = rasterBandStats.maximumValue;
  }
  else if ( mCurrentExtentRadioButton->isChecked() )
  {
    double minMax[2];
    mRasterLayer->computeMinimumMaximumFromLastExtent( band, minMax );
    minVal = minMax[0];
    maxVal = minMax[1];
  }

  minEdit->setText( QString::number( minVal ) );
  maxEdit->setText( QString::number( maxVal ) );
}