Qgis开发10-缓冲区分析
来源:互联网 发布:明解c语言 pdf 高清版 编辑:程序博客网 时间:2024/05/28 17:08
Qgis开发-缓冲区分析
sf2gis@163.com
2014年8月25日
1 概述
缓冲区是指以几何实体为基础,以一定的半径在周围建立起的多边形。用于与周边地物叠加,解决邻近相关性问题。
参考:http://baike.baidu.com/view/1514858.htm
2 原理
缓冲区以给定的几何实现边界,向周围扩展指定的范围大小,从而形成缓冲区多边形。此多边形表示当前图形的邻近范围,与其它图形进行分析,可以解决邻近性问题。
3 方法
所有的几何操作都在QgsGeometry中进行。缓冲区只是其中一个部分。
缓冲区分析为QgsGeometry::buffer():可以指定相应的参数和样式等。返回结果为缓冲后的多边形。
如果进行dissolve,则会合并属性,否则,只是进行几何操作。
4 示例
1) 添加相应的action和界面元素
2) 声明SLOT函数
//xx.h
voidbuffer(void);
3) 连接action的Signal和SLOT
//xx.cpp
connect(ui->actionBuffer,SIGNAL(triggered()),this,SLOT(buffer()));
4) 实现SLOT函数
//xx.cpp
/**
*@briefMainWindow::buffer
*
*buffer.
*@authorsf2gis@163.com
*@date2014-08-2617:19:37
*/
voidMainWindow::buffer()
{
QgsVectorLayer*pVectorLayer=(QgsVectorLayer*)m_pMapCanvas->currentLayer();
QgsFeatureIteratorfeatureIt=pVectorLayer->getFeatures();
featureIt.rewind();
QgsFeatureIdsids;
QgsFeaturef;
while(featureIt.nextFeature(f))
{
constQgsFields*pFields=f.fields();
ids<<f.id();
for(inti=0;i<pFields->size();++i){
qDebug()<<"Feild["<<i<<"]="<<pFields->at(i).name()<<endl;
qDebug()<<"Attribute["<<i<<"]="<<f.attribute(i).toString()<<endl;
}
QgsGeometry*pGeo=f.geometry();
QgsGeometry*pBuffer=pGeo->buffer(0.1,5);
QgsRubberBand*pRubberBuffer= newQgsRubberBand(m_pMapCanvas,pBuffer->type());
pRubberBuffer->addGeometry(pBuffer,NULL);
pRubberBuffer->setColor(QColor(0,255,0));
pRubberBuffer->setWidth(2);
pRubberBuffer->setActive(true);
return;
}
}
- Qgis开发10-缓冲区分析
- Qgis开发13-矢量空间分析
- QGIS-热点分析
- Qgis开发1:总则
- qgis 插件开发
- Qgis开发17-日志
- QGIS python开发手册
- Qgis开发2-工程组织
- Qgis开发8-显示GUI
- python开发qgis插件之一
- qgis
- 缓冲区溢出分析第10课:Winamp缓冲区溢出研究
- ArcGIS Server ADF开发:直线段缓冲分析(生成10公里缓冲区)
- 最短路径分析算法in QGIS
- ArcEngine开发之缓冲区分析实现(C#)
- 在QGIS下开发python插件
- Qgis开发4-地图交互工具
- Qgis开发6-临时图形-QgsRubberBand
- 《C++标准程序库》学习笔记(一)C++相关特性
- HDU 5045 - Contest(dp + 状压)
- Qgis开发9-显示当前鼠标坐标
- zoj 1880 - Tug of War
- 关于Expdp/Impdp 并行导入导出详细测试结果和并行参数的正确理解!!
- Qgis开发10-缓冲区分析
- Leetcode 细节实现 Set Matrix Zeroes
- zoj 3017 - Extreme Gameplay
- 那么其实就是一种倒退
- 那一定是事半功倍的
- 一点站长论坛发外链
- Qgis开发11-地理实体抽象
- 地址的一些思考
- getRequestDispatcher