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之间的转换。
使用:各种分析操作。
微风吹过,海面上金光闪闪,泛起一道道美丽的浪花,