void HlpFlightPlannerApp::setLayerSet( bool updateExtent ) { QList<QgsMapCanvasLayer> layers; layers.append( QgsMapCanvasLayer( mFlightlineLayer, true ) ); layers.append( QgsMapCanvasLayer( mWaypointLayer, true ) ); layers.append( QgsMapCanvasLayer( mProfileLayer, true ) ); // reverse order of legend QListIterator<QgsMapCanvasLayer> maps( HlpMapRegistry::instance()->layers() ); maps.toBack(); while ( maps.hasPrevious() ) layers.append( maps.previous() ); mMapCanvas->setLayerSet( layers ); if ( updateExtent ) mMapCanvas->zoomToFullExtent(); }
void SWGISBrowser::updateCurrentTab() { Tab currentTab = this->activeTab(); if(currentTab == Metadata && this->m_DirtyMetadata) { if(this->m_Layer && this->m_Layer->isValid()) { QString myStyle = QgsApplication::reportStyleSheet(); ui->metaTextBrowser->document()->setDefaultStyleSheet(myStyle); ui->metaTextBrowser->setHtml(this->m_Layer->metadata()); } else ui->metaTextBrowser->setHtml(QString()); this->m_DirtyMetadata = false; } if(currentTab == Preview && this->m_DirtyPreview) { if (this->m_Layer && this->m_Layer->isValid()) { // Create preview: add to map canvas QList<QgsMapCanvasLayer> layers; layers << QgsMapCanvasLayer( this->m_Layer ); ui->mapCanvas->setLayerSet( layers ); QgsRectangle fullExtent = this->m_Layer->extent(); fullExtent.scale( 1.05 ); // add some border ui->mapCanvas->setExtent( fullExtent ); ui->mapCanvas->refresh(); QgsRasterLayer *rlayer = qobject_cast<QgsRasterLayer *>(this->m_Layer); if (rlayer) { connect(rlayer->dataProvider(), SIGNAL(dataChanged()), rlayer, SLOT(triggerRepaint())); connect(rlayer->dataProvider(), SIGNAL(dataChanged()), ui->mapCanvas, SLOT(refresh())); } } this->m_DirtyPreview = false; } if (currentTab == Attributes && this->m_DirtyAttributes) { if (this->m_Layer && this->m_Layer->isValid() && this->m_Layer->type() == QgsMapLayer::VectorLayer) { QgsVectorLayer* vlayer = qobject_cast<QgsVectorLayer*>(this->m_Layer); QApplication::setOverrideCursor(Qt::WaitCursor); this->setLayer(vlayer); QApplication::restoreOverrideCursor(); } else { this->setLayer(nullptr); } this->m_DirtyAttributes = false; } }
void QgsLayerTreeMapCanvasBridge::setCanvasLayers() { QList<QgsMapCanvasLayer> layers; if ( mHasCustomLayerOrder ) { Q_FOREACH ( const QString& layerId, mCustomLayerOrder ) { QgsLayerTreeLayer* nodeLayer = mRoot->findLayer( layerId ); if ( nodeLayer ) layers << QgsMapCanvasLayer( nodeLayer->layer(), nodeLayer->isVisible() == Qt::Checked, nodeLayer->customProperty( "overview", 0 ).toInt() ); } }
int main(int argc, char ** argv) { // Start the Application QgsApplication app(argc, argv, true); QString myPluginsDir = "/home/timlinux/apps/lib/qgis"; QString myLayerPath = "/home/timlinux/gisdata/brazil/BR_Cidades/"; QString myLayerBaseName = "Brasil_Cap"; QString myProviderName = "ogr"; // Instantiate Provider Registry QgsProviderRegistry::instance(myPluginsDir); // create a maplayer instance QgsVectorLayer * mypLayer = new QgsVectorLayer(myLayerPath, myLayerBaseName, myProviderName); QgsSingleSymbolRenderer *mypRenderer = new QgsSingleSymbolRenderer(mypLayer->geometryType()); QList <QgsMapCanvasLayer> myLayerSet; mypLayer->setRenderer(mypRenderer); if (mypLayer->isValid()) { qDebug("Layer is valid"); } else { qDebug("Layer is NOT valid"); } // Add the Vector Layer to the Layer Registry QgsMapLayerRegistry::instance()->addMapLayer(mypLayer, TRUE); // Add the Layer to the Layer Set myLayerSet.append(QgsMapCanvasLayer(mypLayer, TRUE)); // Create the Map Canvas QgsMapCanvas * mypMapCanvas = new QgsMapCanvas(0, 0); mypMapCanvas->setExtent(mypLayer->extent()); mypMapCanvas->enableAntiAliasing(true); mypMapCanvas->setCanvasColor(QColor(255, 255, 255)); mypMapCanvas->freeze(false); // Set the Map Canvas Layer Set mypMapCanvas->setLayerSet(myLayerSet); mypMapCanvas->setVisible(true); mypMapCanvas->refresh(); // Start the Application Event Loop return app.exec(); }
void MainWindow::addLayer() { QString myFileName = QFileDialog::getOpenFileName(this, tr("Open File"), QCoreApplication::applicationDirPath () + "/data", tr("GeoTiff (*.tif)")); QFileInfo myRasterFileInfo(myFileName); QgsRasterLayer * mypLayer = new QgsRasterLayer(myRasterFileInfo.filePath(), myRasterFileInfo.completeBaseName()); if (mypLayer->isValid()) { qDebug("Layer is valid"); } else { qDebug("Layer is NOT valid"); return; } // render strategy for grayscale image (will be rendered as pseudocolor) mypLayer->setDrawingStyle( QgsRasterLayer::SingleBandPseudoColor ); mypLayer->setColorShadingAlgorithm( QgsRasterLayer::PseudoColorShader ); mypLayer->setContrastEnhancementAlgorithm( QgsContrastEnhancement::StretchToMinimumMaximum, false ); mypLayer->setMinimumValue( mypLayer->grayBandName(), 0.0, false ); mypLayer->setMaximumValue( mypLayer->grayBandName(), 10.0 ); // Add the Vector Layer to the Layer Registry QgsMapLayerRegistry::instance()->addMapLayer(mypLayer, TRUE); //create a layerset QList<QgsMapCanvasLayer> myList; // Add the layers to the Layer Set myList.append(QgsMapCanvasLayer(mypLayer, TRUE));//bool visibility // set the canvas to the extent of our layer mpMapCanvas->setExtent(mypLayer->extent()); // Set the Map Canvas Layer Set mpMapCanvas->setLayerSet(myList); }
void MainWindow::addLayer() { QString myLayerPath = "../data"; QString myLayerBaseName = "test"; QString myProviderName = "ogr"; QgsVectorLayer * mypLayer = new QgsVectorLayer(myLayerPath, myLayerBaseName, myProviderName); if (mypLayer->isValid()) { qDebug("Layer is valid"); } else { qDebug("Layer is NOT valid"); return; } //set up a renderer for the layer QgsSingleSymbolRenderer *mypRenderer = new QgsSingleSymbolRenderer(mypLayer->geometryType()); QList<QgsMapCanvasLayer> myLayerSet; mypLayer->setRenderer(mypRenderer); // //set up labelling for the layer // //get the label instance associated with the layer QgsLabel * mypLabel; mypLabel = mypLayer->label(); //and the label attributes associated with the label QgsLabelAttributes * mypLabelAttributes; mypLabelAttributes = mypLabel->layerAttributes(); //note in QGIS 1.4 and up you should use mypLabel->labelAttributes rather //get the field list associated with the layer //we'll print the names out to console for diagnostic purposes QgsFieldMap myFields = mypLayer->dataProvider()->fields(); for (unsigned int i = 0; i < myFields.size(); i++ ) { qDebug("Field Name: " + QString(myFields[i].name()).toLocal8Bit() ); } //just use the last field's name in the fields list as the label field! qDebug("set label field to " + QString(myFields[myFields.size()-1].name()).toLocal8Bit()); mypLabel->setLabelField( QgsLabel::Text, myFields.size()-1); //set the colour of the label text mypLabelAttributes->setColor(Qt::black); //create a 'halo' effect around each label so it //can still be read on dark backgrounds mypLabelAttributes->setBufferEnabled(true); mypLabelAttributes->setBufferColor(Qt::yellow); int myType = QgsLabelAttributes::PointUnits; mypLabelAttributes->setBufferSize(1,myType); /* * Here are a bunch of other things you can set based on values on a database field * the second parameter in each case would be the field name from which the * attribute can be retrieved. mypLabel->setLabelField( QgsLabel::Family, "fontFamily" ); mypLabel->setLabelField( QgsLabel::Bold, "fontIsBold" ); mypLabel->setLabelField( QgsLabel::Italic, "fontIsItalic" ); mypLabel->setLabelField( QgsLabel::Underline, "fontIsUnderlined" ); mypLabel->setLabelField( QgsLabel::Size, "fontSize" ); mypLabel->setLabelField( QgsLabel::BufferSize,"fontBufferSize" ); mypLabel->setLabelField( QgsLabel::XCoordinate, "labelX" ); mypLabel->setLabelField( QgsLabel::YCoordinate, "labelY"); mypLabel->setLabelField( QgsLabel::XOffset, "labelXOffset"); mypLabel->setLabelField( QgsLabel::YOffset, "labelYOffset"); mypLabel->setLabelField( QgsLabel::Alignment, "labelAlignment" ); mypLabel->setLabelField( QgsLabel::Angle, "labelAngle"); */ //lastly we enable labelling! mypLayer->enableLabels(true); // Add the Vector Layer to the Layer Registry QgsMapLayerRegistry::instance()->addMapLayer(mypLayer, TRUE); // Add the Layer to the Layer Set myLayerSet.append(QgsMapCanvasLayer( mypLayer ) ); // set teh canvas to the extent of our layer mpMapCanvas->setExtent(mypLayer->extent()); // Set the Map Canvas Layer Set mpMapCanvas->setLayerSet(myLayerSet); }