Qgis 开发初级 《重要的全局类》

二次开发需要获取QGIS的一些重要对象,这些对象由一些重要的类实现。

1、QgisInterface

该接口类的需要引用头文件

#include<qgisinterface.h>

是通过插件入口函数获取该对象的

QGISEXTERN QgisPlugin* classFactory(QgisInterface* interface)
{
   
   return new MyPluginsMain(interface, sName, sDescription, sCategory, sPluginVersion, QgisPlugin::UI);
 
}

2、QgsMapCanvas

该类非常重要,是QGIS 画布类,很多重要操作都是通过它实现的。qgis的地图刷新,要素定位,闪烁,qgis 工具类的激活,qgis的拾取功能都会用到这个类,是通过这个类调用相关方法来实现。

该类的获取通过 1的 方法获取的。其中interface 是QgisInterface* 的指针对象。

QgsMapCanvas* canvas=interface->mapCanvas()

3、QgsLayerTreeView

Qgis图层视图类,是与Qgis图层树绑定的,Qgis的图层的部分功能是通过这个类来实现的,Qgis的很多功能都和它有关系。Qgis 大部分功能都有一个当前图层的设计。Qgis 大部分功能只对当前选中图层才有操作权限。Qgis 的当前图层是通过这个类来实现。

这个类也是通过 QgsMapCanvas获取的。其中interface 是QgisInterface* 的指针对象。

QgsLayerTreeView* m_layerTreeView = interface->layerTreeView()

该类也可以获取图层树的节点,其中layerTreeView 的是QgsLayerTreeView* 指针对象

QgsLayerTreeLayer* nodeLayer = layerTreeView->layerTreeModel()->rootGroup()->findLayer(layer->id())

4、QgsProject

Qgs 工程类。一般来说,获取Qgis 功能里面的图层是通过这个类来实现。这个对象通过Qgis 静态函数的单实例实现的。通过QgsProject的静态函数获取

QgsProject* project=QgsProject::instance()

通过这个类获取所有图层,也可以根据图层名字或者id获取需要的图层,在此就不再演示了。

QMap<QString,QgsMapLayer*> maplist= QgsProject::instance()->mapLayers();

5、小结

了解这个四个类,就可以进入Qgis的开发了,这四个类有着Qigs的重要的入口函数。

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
QGIS是一种开源的地理信息系统软件,其可以用于地图制作、空间分析、数据管理等功能。而QGIS开发桌面应用,意味着利用QGIS软件的开发工具和API来创建具有特定功能的自定义桌面应用程序。 QGIS开发桌面应用的过程可以分为以下几个步骤: 1. 界面设计:通过QGIS提供的设计工具,可以创建自定义的界面布局,包括工具栏、菜单选项、图标等,使用户可以方便地访问不同的功能。 2. 数据管理:QGIS可以通过其API提供对地理数据库的访问和管理功能,开发者可以利用这些功能来创建自定义的数据管理工具,例如数据导入、查询、编辑等操作。 3. 空间分析:QGIS提供了丰富的空间分析功能,开发者可以利用这些功能来处理地理数据,例如缓冲区分析、叠加分析、路径规划等,通过QGIS开发桌面应用,可以将这些功能集成到自定义应用中。 4. 插件开发QGIS支持插件机制,可以通过开发插件来扩展QGIS的功能。开发者可以利用QGIS的API来创建自定义插件,例如添加新的地理处理算法、导入导出数据格式等。 总的来说,QGIS开发桌面应用具有灵活性和自定义性,开发者可以根据自己的需求和项目要求来定制应用程序,将QGIS的强大功能与自己的业务逻辑结合起来,实现特定的地理信息系统应用。无论是制图、数据管理还是空间分析,QGIS都提供了丰富的工具和API支持,使开发者能够快速而灵活地开发出符合需求的桌面应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhangiser

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值