Qgis 基於Qt環境下的開發:第二節《新增要素-點》
阿新 • • 發佈:2020-08-24
上一節講了新增向量圖層,接下來我們來在向量圖層上新增我們的點要素.
: QMainWindow(parent) { //老規矩我們來建立畫布 QgsMapCanvas *canvas = new QgsMapCanvas(this); //新增一個背景向量圖層 QString path = "D:/Qt/bbb.shp"; QgsVectorLayer *layer = new QgsVectorLayer(path,"MyPoint","ogr"); //在這裡缺少一步<建立連結串列>,我把QList<QgsMapLayer *>Layers設定成全域性變數 //這個是點要素的新增方法,我們跳進函式來看一下 AddPoint(); //將向量層追加到連結串列中 layers.append(layer); //設定畫布縮放 canvas->setLayers(layers); canvas->zoomToFullExtent(); //設定畫布背景顏色,當然這個可以根據你自己的需求來設定 canvas->setCanvasColor(QColor(124,134,205)); //設定畫布為當前中心視窗 this->setCentralWidget(canvas); } MainWindow::~MainWindow() { } void MainWindow::AddPoint() { //建立一個點圖層 QgsVectorLayer *point = new QgsVectorLayer("Point?crs=epsg:4326","MyPoint","memory"); //建立一個容器 QgsVectorDataProvider * dataProvider = point->dataProvider(); //建立一個點要素, QgsFeature MyFeature; //設定在地圖的插入點的座標 MyFeature.setGeometry(QgsGeometry::fromPointXY(QgsPointXY(116.3215,39.5416))); dataProvider->addFeatures(QgsFeatureList()<<MyFeature); //重新整理圖層 point->updateExtents(); //將點圖層追加到連結串列中 layers.append(point); }``` 實現效果如下圖: ![](https://img2020.cnblogs.com/blog/2094497/202008/2094497-20200824190450754-165112497.png) 很簡單吧.學習Qgis,大家一定要掌握好的方法,這樣就可以快速的熟練運用