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

  • 相关阅读:
    Oracle(PLSQL)入门学习五
    visual studio 调试 不进断点 断点失效 提示当前不会命中该断点等问题解决
    java maven项目 导入jar包注意
    sql语句 like 条件查询
    sql语句 查询分组后的每组的第一条或最后一条数据
    文件上传的一些验证(文件类型)
    图片上传回显
    oracle数据库建表设置自增主键
    bootstrap时时提醒填入数据是否与数据库数据重复
    Oracle分析函数列表分享
  • 原文地址:https://www.cnblogs.com/Qt895996365/p/13555567.html
Copyright © 2011-2022 走看看