空间分析编程报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
缓冲区分析与叠置分析 ——空间分析与应用课间编程研发报告 实习目的: 利用VC编程实现一个矢量数据空间分析的实验软件,实现缓冲区分析(点缓冲、线缓冲、面缓冲)和叠置分析(叠置交、叠置并、叠置补)。通过本次实习,加深对于空间叠置类型和算法以及缓冲区生成算法的理解,提高动手编程能力,并初步了解GIS 底层开发的初步知识。Visual C++ 6.0,简称VC或者VC6.0,是微软推出的一款C++编译器,将“高级语言”翻译为“机器语言(低级语言)”的程序。Visual C++是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出Visual C++1.0后,随着其新版本的不断问世,Visual C++已成为专业程序员进行软件开发的首选工具。虽然微软公司推出了 Visual C++.NET(Visual C++7.0),但它的应用有很大的局限性,只适用于Windows 2000、Windows XP和Windows NT4.0。所以实际中,更多的是以Visual C++6.0为平台。 基本图形绘制使用MFC 提供的GDI 函数绘制基本图形,包括点,线,圆,多边形的框架绘制和填充。 在程序中具体实现方法为在视图类中定义基本图形的列表,包括点、直线、多边形的列表, 使用vector 类型存储,然后在OnDraw()函数中依次绘制出所有的图形即完成基本图形绘制。 以点、线、面实体为基础,自动建立其周围一定宽度范围内的缓冲区多边形图层,然后建立该图层与目标图层的叠加,进行分析而得到所需结果。它是用来解决邻近度问题的空间分析工具之一。邻近度描述了地理空间中两个地物距离相近的程度。 对于点缓冲区,读取用户输入的缓冲区半径后,绘制出以点为中心,以缓冲区半径为半 径的圆即完成点缓冲区的生成。对于线缓冲区,以每条线段的长为长,以缓冲区半径的两倍为宽,绘制一个矩形,在每一顶点绘制一个以缓冲区半径为半径的圆,即完成缓冲区的生成。对于多边形缓冲区,将其视为闭合的线缓冲区,按照缓冲区的生成方法产生。以点目标为中心,以缓冲区距离为半径直接绘圆。 角平分线的缺点: 难以保证双线的等宽性,凸侧角点在变成锐角时将远离轴线。 (2)凸角圆弧法 基本思想: 在轴线的两端用半径为缓冲距的圆弧拟合;在轴线转折点,判断该点的凹凸性,在凸侧用半径为缓冲距的圆弧拟合,在凹侧用与该点关联的两缓冲线的交点为对应缓冲点。 优点: 凸侧的缓冲线与轴线等宽,而凹侧的对应缓冲点位于凹角的角平分线上——缓冲区边界与轴线的等宽关系。 面缓冲区的生成与线缓冲区类似,可将其视为闭合的线缓冲区,按照缓冲区的生成方法产生对于点面叠置,主要的要算每一个点是否在多边形内,我用的是从该点向左做一条射 线,然后计算该射线与多边形的交点的个数,如果为奇数,那么该点在多边形内,否则该点 在多边形外。并且将该函数独立出来,方便其他函数调用。 对于线面叠置,则是计算折线的每一条线段和多边形的交点,然后将使用这些交点将该 线段分割为n 个子线段,对于每一个子线段可以确定,该线段要么全部在多边形外,要么全部在多边形内,这样只需要判断该线段的中点即可以知道该线段是否在多边形内,对于在多边形内的线段,使用粗线段渲染出来。 对于面面叠置,使用CRgn 类来求两个多边形的交、并、补,并且区域渲染出来。 二、叠置分析 首先,先画两个多边形(多边形的填充颜色为蓝色),截图如下: 依次对其求交、并、补(填充颜色为绿色),如下: 两多边形相交结果: 两多边形求“并”的结果: 两多边形求“补”的结果: 五、实习体会 本次实习,我收获颇多,主要是进一步熟悉了空间分析的理论和方法,特别是熟悉了缓冲区分析和叠置分析。同时,也增加了利用VC编程的技巧。 本次实习也遇到过不少问题,编程的时候出现过一些BUG,不过最后都一一调整正确了。因为编程的过程就是一个不断调试的过程,并且在这个过程中我学到了不少东西。 总之,通过本次实习,我学习和掌握了部分空间分析的基本算法,对于从底层开发GIS 分析功能有了一定的经验,同时建议老师在布置这类作业时能够提供一些可供使用的具体算法,这样能够使我们在不知道如何实现时有一定的参考。 1

文档评论(0)

lyxbb + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档