QGis
QT-Man
这个作者很懒,什么都没留下…
展开
-
QGis二次开发:保存矢量图形和字段
1、首先拿到shp图层QgsVectorLayer *currentLayer = qobject_cast<QgsVectorLayer *>(MainWindow::TheInstance()->getActiveMapCanvas()->currentLayer());2、生成矢量对象//保存点QgsPoint point(x,y,z);//保存线 或面 其中QgsPolyline由QgsPoint 的点集组成QgsPolyline Poly;//Qgs原创 2020-07-17 12:20:38 · 1734 阅读 · 0 评论 -
QGis源码编译: QGIS3.4.15 + VS2017 + qt5.12 + win10
一、准备工作1、下载QGIS源码 https://github.com/qgis/QGIS,最好用git clone到本地,这样可以看到所有的版本,缺点是clone的速度非常慢2、编译所需工具CMake >= 2.8.0FlexBison >=2.4默认安装即可3、第三方库以下依赖库可直接在OSGeo4w上安装,安装后将OSGeo4W添加到系统变量里,具体请百度Qt >= 4.5.0Proj >= 4.4.xGEOS >= ...原创 2020-07-24 15:28:37 · 1273 阅读 · 2 评论 -
QGis二次开发:预览几何图形,QgsRubberBand的应用
QgsRubberBand用于显示临时图形。具体函数应用请看接口,注释写的很详细QgsMapCanvas mapCanvas=获取你的画布;QgsRubberBand *mRubber = nullptr;/*#QgsWkbTypes::LineGeometry, QgsWkbTypes::PolygonGeometry or QgsWkbTypes::PointGeometry#对应三种几何线 面 点*/mRubber = new QgsRubberBand( mapCanvas,Q原创 2020-08-04 12:04:42 · 1575 阅读 · 1 评论 -
QGis二次开发:圆
/** @centerPoint 圆心点,* @radius 半径 * QgsCircle::points()默认参数为36,即圆上均匀分布的36点,QgsCircle实际上为一个正N边形*/QgsCircle circle(centerPoint, radius);QVector<QgsPoint> points = circle.points();...原创 2020-09-02 08:44:03 · 1909 阅读 · 1 评论 -
QGis多段曲线等距离取点
void normalizedMutiLine(QVector<QgsPoint> source,QVector<QgsPoint> &result,double dis){ QgsLineString sourceLine(source); double length = oldline.length(); for (int n = 1; n < length / dis; n++) { QgsLineString* ...原创 2020-10-27 14:48:11 · 1221 阅读 · 0 评论