Qgis 基於Qt環境下的開發:第二節《添加要素-點》


上一節講了添加矢量圖層,接下來我們來在矢量圖層上添加我們的點要素.
``

include "mainwindow.h"

include "ui_mainwindow.h"

include <qgsmapcanvas.h>

include <qgsvectorlayer.h>

include

include <qgssymbol.h>

include <qgssymbollayer.h>

include <qgsvectordataprovider.h>

MainWindow::MainWindow(QWidget *parent)
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);

}``
很簡單吧.學習Qgis,大家一定要掌握好的方法,這樣就可以快速的熟練運用
實現效果如下圖:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM