zoukankan      html  css  js  c++  java
  • 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,大家一定要掌握好的方法,这样就可以快速的熟练运用
    实现效果如下图:

  • 相关阅读:
    WPF简单模拟QQ登录背景动画
    Bootstrap WPF Style,Bootstrap风格的WPF样式
    琴弦文字 - wpf行为
    值得注意的IsHitTestVisible
    WPF实现三星手机充电界面
    我的Android开发之路——ListView的使用
    我的Android开发之路——百度地图开源工具获取定位信息
    例题 线段树合并
    [PA2015]Siano 单调栈
    笔记 可持久化线段树
  • 原文地址:https://www.cnblogs.com/Qt895996365/p/13555567.html
Copyright © 2011-2022 走看看