Qgis
文章平均质量分 73
Qt+Qgis二次开发
Mr.codeee
不积跬步,无以至千里.不积小流,无以成江海
展开
-
Qgis二次开发-实现缩略图、标注
因为上述动作是和画布进行交互,所以首先需要自定义一个地图交互工具类,由于做的比较简单,只需要重写实现鼠标点击事件。其次就是在地图画布上画标注图片(svg格式),以及缩略图片(其他格式的),以及经纬度坐标文字。以下是参考如何画svg标注,栅格图片,文字等。Qgis二次开发-QgsAnnotationItem(添加文字、图片标注(支持svg、png、jpg等常用图片格式))_Mr.codeee的博客-CSDN博客首先说一下我遇到的问题,原创 2023-07-23 15:26:35 · 1702 阅读 · 7 评论 -
Qgis二次开发-QgsSymbol、QgsMarkerSymbolLayer标注符号层介绍
QgsSymbol:用于呈现符号的抽象基类,经常和QgsMarkerSymbolLayer类搭配使用。标记符号层的抽象基类,经常和QgsSymbol类搭配使用。一个用于标记,一个用于呈现。很明显,可以呈现点、线、标记等。以下是QgsMarkerSymbolLayer后面主要介绍QgsRasterMarkerSymbolLayer加载栅格图层的类和加载svg图层的类QgsSvgMarkerSymbolLayer。介绍其中一个QgsRasterMarkerSymbolLayer类,别的子类大同小异。原创 2023-07-22 15:08:12 · 778 阅读 · 0 评论 -
Qgis二次开发-QgsAnnotationItem(添加文字、图片标注(支持svg、png、jpg等常用图片格式))
用QgsAnnotationLayers绘制标注的抽象基类,标注好比我们需要在地图上标记一些点位,可以使用点、线、文字等方式标记。这与QgsAnnotation类不同,这个类只能绘制在QgsAnnotationLayers上。以下是类的继承关系:可以看出,可以实现文字、线、图片(不限于svg格式的图片)、多边形的绘制。表示包含一组地理标注的地图层,例如:标记、线条、多边形或文本项。继承自QgsMapLayer。原创 2023-07-22 14:17:52 · 1826 阅读 · 4 评论 -
Qgis二次开发-QgsAnnotation(添加文字、svg标注)
QgsAnnotation是地图上绘制的标注项的抽象基类,这些标注可以在地图中绘制,并且具有固定的地图位置(使用mapPosition()检索),或者放置在相对于地图框架的位置(使用relativePosition()检索)。具有固定映射位置的注释也有相应的QgsCoordinateReferenceSystem,它可以通过调用mapPositionCrs()来确定。派生类应该重写renderAnnotation()来实现它们的自定义绘画例程。原创 2023-07-22 13:21:53 · 1199 阅读 · 1 评论 -
Qgis二次开发-QgsMapTool地图交互工具详解
QgsMapTool地图工具是用于操作地图画布的用户交互式工具。例如,地图平移和缩放功能被实现为地图工具。QgsMapToolEdit:用于编辑矢量几何图形的映射工具的基类QgsMapToolEmitPoint:一个地图工具,当单击地图时,它只是发出一个点。将一个槽连接到它的canvasClicked()信号将允许您为传入点实现自定义行为。QgsMapToolExtent:地图画布上绘制矩形发出一个范围。QgsMapToolIdentify :用于识别图层特征的映射工具。原创 2023-07-21 19:37:21 · 3406 阅读 · 9 评论 -
Qgis二次开发-QgsGeometry类简介
QgsGeometry类是QGIS中的一个核心类,用于表示和处理地理要素的几何形状。它提供了许多方法和函数,用于创建、修改和分析地理要素的几何形状。表示和存储地理要素的几何形状:QgsGeometry可以表示点、线、面等不同类型的几何形状。它可以存储几何坐标信息,并提供了访问和修改几何形状的方法。进行几何操作:QgsGeometry类提供了丰富的几何操作方法,如计算两个几何对象之间的距离、判断几何对象是否相交、计算几何对象的缓冲区等。这些操作可以用于空间分析和地理信息处理等应用中。原创 2023-07-31 11:30:43 · 1176 阅读 · 2 评论 -
Qgis二次开发-加载本地离线瓦片地图
此方法不好用,我使用这个方法之后,对于高德下载的瓦片地图使用起来会存在问题,高德的地图层级。修改nginx的nginx.conf文件,添加如下的路径,我监听的本地9090端口。具体的QgsXyzConnection类定义:看如下文章。启动服务,成功之后,看起来就像这样。原创 2023-07-30 20:14:52 · 3119 阅读 · 0 评论 -
Qgis二次开发-加载高德在线地图失败报错Raster layer Cannot instantiate the ‘wms‘ data provider
将E:/OSGeo4W/apps/qgis-ltr-dev/plugins目录拷贝到生成程序的运行目录下,因为程序启动起来加载的是本地的plugins下的插件。大概的意思就是说不能初始化wms的东西,就是wms的相关驱动没有加载好。不需要设置setPrefixPath()。以下是在线高德地图地址。提供一个编码url的类。原创 2023-07-25 20:10:38 · 1651 阅读 · 14 评论 -
Qgis二次开发-QgsFeature地理要素的特征
QgsFeature类封装了一个特性,它包含了一个地理要素的几何信息以及属性值。QgsFeature的意义在于提供了一种统一的方式来处理地理要素数据。通过使用QgsFeature,可以轻松地获取和修改地理要素的几何信息和属性值。在矢量图层获取元素时,QgsVectorLayer::getFeature()完成操作。getFeature()会返回元素操作对象(QgsFeatureIterator)。原创 2023-07-23 10:59:31 · 568 阅读 · 0 评论 -
Qgis二次开发-QgsMapLayer(加载矢量、栅格图层)
QgsMapLayer是所有地图层类型的基类,这是所有地图层类型(矢量,栅格)的基类,首先定义一个QgsMapCanvas地图画布,然后画布上添加图层,使用以下方法设置图层集合。//设置当前图层集合QgsAnnotationLayer:标注的图层QgsMeshLayer:表示支持在结构化或非结构化网格上显示数据的网格层。QgsPluginLayer:插件层的基类QgsRasterLayer:表示栅格层QgsVectorLayer:矢量图层。原创 2023-07-23 10:22:22 · 1268 阅读 · 0 评论 -
Qgis二次开发-QgsMapCanvas画布简介
QgsMapCanvas是一个用于在画布上显示所有GIS数据类型的类,它是QGis的核心类,所有的画的东西都要在画布上进行。//重新绘制画布地图//保存图片//放大//缩小//画布颜色改变时//当前层被改变时发出//当映射的范围更改时触发//当接收到一组新的层时触发//地图交互工具改变了//当地图的比例改变时发出//当鼠标位置改变时发出//缩放最后状态改变时触发//缩放下一个状态改变时触发//返回当前图层//用于确定是否启用了抗锯齿//返回地图画布的当前缩放范围。原创 2023-07-21 20:09:55 · 1366 阅读 · 0 评论 -
Qgis二次开发-QgsRubberBand详解(画线、画多边形)
QgsRubberBand类是一个透明小部件,可用于绘制点、线、多边形,还可以用于绘制SVG图片,仅限于svg格式的图片。原创 2023-07-20 16:42:04 · 1988 阅读 · 3 评论 -
Qgis3.16ltr+VS2017二次开发环境搭建(保姆级教程)
点击"配置属性"->“C/C++”->“预处理器”,在预处理器定义中加入"配好以上环境后,基本上编译没有问题了,能够生成可执行程序了。原创 2023-07-19 21:02:33 · 2060 阅读 · 1 评论