sf2gis2的专栏

Qgis相关类参考

sf2gis@163.com

2014年8月24日

1 概述

GIS类相关说明在API文档中有详细的描述。部分内容取自源码分析。

2相关类 2.1 Q Gis

本类其实相当于一个命名空间,用于定义全局变量和静态函数。

大部分枚举和常用操作可以在本类中找到。

2.2 Q gsMapCanvas

地图画布类。

extent():当前地图的缩放范围大小。不是显示范围,指

2.3 Q gsMapTool

所有地图工具类的基本,本身实现所有的鼠标操作,但并无实际功能。相关工具实现时,只需要重写相关操作。

包含许多在交互时用到的工具,如坐标转换,渲染消息等。

属性:mMapCanvas 创建对象时需要指定当前工具作用的画布。

mCursor:当前tools使用的鼠标样式。

mAction:当前action,用于切换工具。

mToolName:当前工具的名称。

2.4 QgsRubberBand

橡皮图层。用于绘制临时矢量图形。主要用于鼠标绘制时显示跟踪图形。

可以设置各种显示样式,以及图形操作等。

2.5 QgsMapCanvasItem

用于地理坐标系统与屏幕坐标之间的转换及相关事件的响应。此类可以自然的使用经纬度坐标。

2.6 QgsFeatureRequest

元素请求类。用于向图层中请求指定元素的封装。

可以设置过滤条件,如范围、属性id,或者自定义的复杂条件等,如果不设置,则默认为获取全部属性,如果设置为空列表,则不返回属性值。因为属性设置后返回原对象,所以可以链式设置。

1) 获取全部数据(属性+几何):不设置。

2) 只获取几何:setFilterType

3) 只获取属性,不返回几何:setFlags(QgsFeatureRequest::NoGeometry);

4) 获取部分属性:setFlags(QgsFeatureRequest::SubsetOfAttributes);setSubsetOfAttributes(list);

setSubsetOfAttributes(QgsAttributeList&lst):lst(qgsvector(int))表示一个属性名称索引的集合。

setSubsetofAttributes(QStringList&lstName,QgsFields &fields):lstName表示属性名的集合,fields表示所有的属性名。然后用lstName在fields中查找,找到的结果以属性名称索引列表的方式进行查找。

注意:帮助文件中说明,如果设置为空,则返回全部,实际上不设置才会返回全部,如果设置为空,则不返回值。

5) 获取指定ID、部分ids属性:setFilterFid();setFilterFids()。

2.7 QgsVectorLayer

矢量图层。

getFeauture():

2.8 QgsFeatureIterator

元素迭代器。

nextFeature()用于获取下一个元素,成功返回true,失败返回false。

2.9 QgsFeature

元素的封装类,,用于操作元素属性。

2.10 QgsCoordinateTransform

坐标转换类。用于不同的坐标系统之间的转换。

2.11 QgsMapToPixel

坐标转换类。用于地理坐标系统与设备坐标之间的相互转换。

toMapCoordinates()、toMapCoordinatesF():从设备坐标转换为屏幕坐标。

transform()、transfromInPlace():从屏幕坐标转换为设备坐标。注意:这里的屏幕坐标使用QgsPoint格式。

2.12 QgsCoordinateTransform

用于不同坐标系统之间转换。一般用于不同图层之间,以及图层和MapCanvas之间的转换。

设置好源坐标系统和目标坐标系统之后就可以进行点、元素等之间的转换。

如果QgsMapCanvas::hasCrsTransformEnabled()为true,如果有图层的坐标系统不同于当前坐标系统,则自动进行坐标转换。

提供当前所有的正式坐标系统及示例。

在使用CRS时,需要提供相应的数据库(srs.db),可以直接copy 安装目录下的resource目录放入exe上层目录。

2.13 QgsCoordinateRefrenceSystem

用于表示一种坐标参考系统(CRS)。可以与WKT、PROJ4等之间进行转换。

WGS84:EPSG4326。

WGS84 WEB Mercator:EPSG3857

2.14 QgsMapSettings

地图设置类。用于渲染时从中读取相关参数。

所有影响地图坐标范围的动作,都会在此对象中进行反映,在地图进行刷新时就会由渲染类读入,进而改变地图。

此类是所有地图计算的基本,包括对比例尺,图元单位的计算等,都在此进行。

特别需要注意的是:在MapCanvas显示之前,此类对象的内容是不确定的,加载图层完成后,地图刷新前,此类对象也要进行更新,因此,只有在MapCanvas显示完成之后才能使用。

2.15 QgsMapRendererJob

渲染类。

此类会读取当前应用中所有的图层及其渲染设置,并据此进行渲染工作。

2.16 QgsGeometry

几何类。主要进行几何操作功能,所以叫几何操作类更合适。

QgsGeometry主要进行两方面的工作,一是格式转换,将外部格式转换为内部WKB格式或相反。

另一个是以WKB为基础进行几何分析操作。

构造:直接构造,但需要从WKB/Geos几何类型来设置当前对象。当然也可以与之进行转换。

析构:清除内部wkb。

转换:各种格式与wkb之间的转换。

使用:各种分析操作。

微风吹过,海面上金光闪闪,泛起一道道美丽的浪花,

sf2gis2的专栏

相关文章:

你感兴趣的文章:

标签云: