1  概述 鼠标在地图上移动,需要实时获取当前坐标位置.2 原理 从当前位置获取视口坐标后,实时转换为地图坐标.3 方法 处理鼠标位置,必须获取鼠标的当前坐标.但是Qt的鼠标事件由QgsMapCanvas处理.因此,想要显示其坐标,必须由QgsMapCanvas提供支持. QgsMapCanvas中包含一个信号:voidxyCoordinate(const QgsPoint &p); 只要处理这个信号就可以显示相关坐标. 注:主窗口的状态栏只能通过ui->statusBar()获取,然后向其…
Qt Qgis 二次开发--鼠标点击识别矢量要素 介绍: 识别矢量要素需要用到QGis的一个工具类:QgsMapToolIdentifyFeature 一个QgsMapTool的子类的子类,官方文档描述: 接下来就是如何使用了,直接上代码 代码: 使用(不知道基本用法的可以参考上一篇) #include "qgsmaptoolidentifyfeature.h" /* 第一个参数:使用该工具的画布 * 第二个参数:要识别的要素的图层 */ QgsMapToolIdentifyFeatu…
一.加载栅格图像 加载栅格图像的详细步骤在下面代码里: //添加栅格数据按钮槽函数 void MainWindow::addRasterlayers() { //步骤1:打开文件选择对话框 QString filename=QFileDialog::getOpenFileName(this,tr("打开栅格数据"),"","remote sensing image(*.tif *.tiff);;image(*.jpg *.jpeg *.png *.bmp)…
不过多的废话了,直接上源码: addChartlayers()方法时“打开海图”按钮的triggered()信号所绑定的槽函数. //添加海图数据小按钮槽函数 void MainWindow::addChartlayers() { m_mapCanvas->freeze(true);//冻结或解冻地图画布对象,frozen (true) or thawed (false). Default is true. //步骤1:打开文件选择对话框 QString filename=QFileDialog…
原文链接: 1.qgis二次开发环境搭建(超级详细) 2.QGIS开发教程(1)——QGIS开发准备工作 3.QGIS(2.18.15 源码)+Qt(5/5.9.3)+VS2015(X64)编译…
在GIS领域,有两种重要的查询操作,图查属性和属性查图. 本文主要介绍如何在QGIS中通过从QgsMapToolIdentify中派生自定义类实现查询矢量数据的属性字段值(图查属性). 重点参考资料: 1.QGis二次开发基础 -- 属性识别工具的实现 2.QGis(三)查询矢量图层的要素属性字段值…
原文链接:QGis二次开发基础 -- 矢量图层的显示样式…
开发环境:Win10 + VS2010 + Qt 4.8.6 + QGis 2.14.4 其实本文实现的功能类似于QGis中“添加文本数据图层”的一个简化版,本文不会涉及到对话框的使用,不通过与用户互交的方式创建要素,而是直接通过代码方式添加点要素,起到一个抛砖引玉的作用. (一)先将整个流程大概梳理下: 1.首先创建一个临时(memory)矢量图层 ; 2.将创建的图层添加到地图画布中 ; 3.创建几何要素 ; 4.将几何要素添加到矢量图层中 ; 5.更新图层范围并刷新画布 . (二)程序代码…
项目(QgsProject) 用于读写项目状态 图层分组(QgsLayerTreeGroup) 项目树的分组节点,用来存放图层节点. 图层节点(QgsLayerTreeLayer) 项目树的图层节点. 图层(QgsMapLayer ) QgsMapLayer 为所有图层类型的基类.QgsPluginLayer 为插件图层,QgsRasterLayer 为栅格图层,QgsVectorLayer 要素(QgsFeature) 表示图层里的单个要素.包括Id和几何图形. 几何图形(QgsGeometr…
1  概述 临时图形Rubberband主要用于高亮显示.交互绘制等情况下.2 原理 临时图形是在一个底色透明的图层(顶层)上,添加已有的几何元素或者创建一个几何元素(临时图形),可以设置相应的样式,并在图层的最上层叠加显示.3 使用方法 QgsRubberBand用于显示临时图形.可以显示点.线.面等所有类型.由于在交互绘制时,可能需要高亮显示节点,所以本类也可以设置不同的IconType来显示不同的节点样式(只能在点类型时起作用). 生成对象后可以完成操作所有的属性,如几何元素.样式等. s…