简单空间叠置和缓冲区分析实验软件开发实习报告.docx

简单空间叠置和缓冲区分析实验软件开发实习报告.docx

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
简单空间叠置和缓冲区分析实验软件开发实习报告

简单空间叠置和缓冲区分析实验软件开发实习报告实验目的和要求利用VC编程实现一个矢量数据空间分析的实验软件,实现缓冲区分析(点缓冲、线缓冲、面缓冲)和叠置分析(叠置交、叠置并、叠置补)。通过本次实习,加深对于空间叠置类型和算法以及缓冲区生成算法的理解,提高动手编程能力,并初步了解GIS底层开发的初步知识。实验环境本次实习我使用微软公司的Visual Studio 2010作为开发环境,使用VC++作为开发语言,基于MFC框架和Ribbon界面开发了该实验软件,并在Windows7 SP1系统上进行运行和测试。如果没有安装Visual Studio 2010,需要首先安装程序目录下的下面的“vcredist_x86.exe”,该程序是VS2010的可在发行组件包,是本实验程序的运行环境必备组件。实验步骤软件框架搭建使用VS2010创建新的项目,选择项目类型为MFC应用程序,在“样式类型”选项中选择Office,使应用程序具有Ribbon风格外观。基本图形绘制使用MFC提供的GDI函数绘制基本图形,包括点,线,圆,多边形的框架绘制和填充。在程序中具体实现方法为在视图类中定义基本图形的列表,包括点、直线、多边形的列表,使用vector类型存储,然后在OnDraw()函数中依次绘制出所有的图形即完成基本图形绘制。缓冲区生成对于点缓冲区,读取用户输入的缓冲区半径后,绘制出以点为中心,以缓冲区半径为半径的圆即完成点缓冲区的生成。对于线缓冲区,以每条线段的长为长,以缓冲区半径的两倍为宽,绘制一个矩形,在每一顶点绘制一个以缓冲区半径为半径的圆,即完成先缓冲区的生成。对于多边形缓冲区,将其视为闭合的线缓冲区,按照先缓冲区的生成方法产生。叠置分析对于点面叠置,主要的要算每一个点是否在多边形内,我才用的是从该点向左做一条射线,然后计算该射线与多边形的交点的个数,如果为奇数,那么该点在多边形内,否则该点在多边形外。并且将该函数独立出来,方便其他函数调用。对于线面叠置,则是计算折线的每一条线段和多边形的交点,然后将使用这些交点将该线段分割为n个子线段,对于每一个子线段可以确定,该线段要么全部在多边形外,要么全部在多边形内,这样只需要判断该线段的中点即可以知道该线段是否在多边形内,对于在多边形内的线段,使用粗线段渲染出来。对于面面叠置,由于算法过于复杂,我能力不够,没有实现出来,故使用CRgn类来求两个多边形的交、并、补,并且使用红色区域渲染出来。实习结果功能菜单栏,如下图所示,图1功能菜单栏清空屏幕在“视图”面板中的“清空屏幕”按钮能够清空所有的已绘制内容,如果感觉屏幕内容过多,可以使用该按钮清空屏幕。点缓冲区生成首先点击“点缓冲区面板”的“画点”按钮,此时鼠标进入画点状态,可以在主视图区域点击绘制点要素(如图2左),然后在半径的输入框中输入缓冲区半径,然后点击“点缓冲区面板”的“生成”按钮,即可生成点缓冲区(如图2右)。图2点缓冲区线缓冲区生成首先点击“线缓冲区面板”的“画线”按钮,此时鼠标进入画线状态,可以在主视图区域点击绘制线要素(如图3左),注意由于本程序主要目的是实现相关功能,因此为了简便只能够绘制一条直线。然后在半径的输入框中输入缓冲区半径,然后点击“线缓冲区面板”的“生成”按钮,即可生成线缓冲区(如图3右)。图3线缓冲区面缓冲区生成首先点击“面缓冲区面板”的“画多边形”按钮,此时该按钮会变为“闭合”按钮,此时鼠标进入画多边形状态,可以在主视图区域点击绘制多边形要素,在完成绘制有点击“闭合”按钮,闭合多边形,完成绘制(如图4左),注意由于本程序主要目的是实现相关功能,因此为了简便只能够绘制一个多边形。然后在半径的输入框中输入缓冲区半径,然后点击“线缓冲区面板”的“生成”按钮,即可生成多边形缓冲区(如图4右)。图4多边形缓冲区点面叠置分析本程序的点面叠置的要素是基于前面绘制的点和多变形,因此请根据4.2和4.4绘制点和面(如图5左),然后点击“叠置分析”面板中的“点面叠置”按钮,在多边形内的点会被高亮绘制出来(如图5右)。图5点面叠置线面叠置分析本程序的线面叠置的要素是基于前面绘制的线和多变形,因此请根据4.3和4.4绘制点和面(如图6左),然后点击“叠置分析”面板中的“线面叠置”按钮,在多边形内的线段部分会被高亮绘制出来(如图6右)。图6线面叠置面面叠置分析首先使用绘制多边形功能绘制多边形A,然后点击“叠置交”、“叠置并”、“叠置补”按钮,可以绘制多边形B,绘制完成后点击完成,既可以得到相应的交、并、补集。(如图7)。图7多边形叠置(依次为交、并、补)实习总结通过本次实习,我学习和掌握了部分空间分析的基本算法,对于从底层开发GIS分析功能有了一定的经验,同时建议老师在布置这类作业时能够提供一些可供使用的具体算法,这样能够使我们在不知道如何实现

文档评论(0)

zhuliyan1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档