欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    空间分析编程报告.doc

    • 资源ID:79333902       资源大小:193.50KB        全文页数:5页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    空间分析编程报告.doc

    缓冲区分析与叠置分析空间分析与应用课间编程研发报告一、 实习目的:利用VC编程实现一个矢量数据空间分析的实验软件,实现缓冲区分析(点缓冲、线缓冲、面缓冲)和叠置分析(叠置交、叠置并、叠置补)。通过本次实习,加深对于空间叠置类型和算法以及缓冲区生成算法的理解,提高动手编程能力,并初步了解GIS 底层开发的初步知识。二、 编程环境系统环境:Windows7 开发环境:Visual C+ 6.0Visual 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()函数中依次绘制出所有的图形即完成基本图形绘制。二、缓冲区分析以点、线、面实体为基础,自动建立其周围一定宽度范围内的缓冲区多边形图层,然后建立该图层与目标图层的叠加,进行分析而得到所需结果。它是用来解决邻近度问题的空间分析工具之一。邻近度描述了地理空间中两个地物距离相近的程度。对于点缓冲区,读取用户输入的缓冲区半径后,绘制出以点为中心,以缓冲区半径为半 径的圆即完成点缓冲区的生成。对于线缓冲区,以每条线段的长为长,以缓冲区半径的两倍为宽,绘制一个矩形,在每一顶点绘制一个以缓冲区半径为半径的圆,即完成线缓冲区的生成。对于多边形缓冲区,将其视为闭合的线缓冲区,按照线缓冲区的生成方法产生。1、点缓冲区的生成对选定的目标点设定缓冲距,生成圆形缓冲区。 有两种常用方法: (1) 直接绘圆法: 以点目标为中心,以缓冲区距离为半径直接绘圆。(2)圆弧步进拟合法: 缓冲距的圆弧上将圆心角等分为若干等分,用等长的弦来代替圆弧,用直线代替曲线,用已知半径为等间距的离散点来逼近缓冲圆。 2、线缓冲区的生成以线状目标为参考轴线,以轴线为中心向两侧沿法线方向平移一定距离,并在线端点处以光滑曲线连接,所得到的点组成的封闭区域。实质:对线状目标上的坐标点逐点求得其缓冲点的过程。线缓冲区生成关键算法: (1)角平分线法基本思想:在转折点处根据角平分线确定缓冲线的形状。基本步骤:1)确定线状目标左右侧的缓冲距离dl、dr 。2)提取线状目标的坐标序列。3)沿线状目标轴线的前进方向,依次计算轴线上各点的角平分线,起点和终点的角平分线为起始线段或终止线段的垂线。4)在各点角平分线的延长线上用左右侧缓冲距离dl 和dr确定各点的左右缓冲点位置。5)左右缓冲点顺序相连,构成左右缓冲边界的基本部分。6)在起点和终点处,以(dl+dr)为直径、以角平分线 (垂线)为直径向外作外接半圆。7)将外接半圆与左右缓冲边界的基本部分相连,即为线状目标的缓冲区。角平分线的缺点: 难以保证双线的等宽性,凸侧角点在变成锐角时将远离轴线。(2)凸角圆弧法基本思想:在轴线的两端用半径为缓冲距的圆弧拟合;在轴线转折点,判断该点的凹凸性,在凸侧用半径为缓冲距的圆弧拟合,在凹侧用与该点关联的两缓冲线的交点为对应缓冲点。 优点: 凸侧的缓冲线与轴线等宽,而凹侧的对应缓冲点位于凹角的角平分线上缓冲区边界与轴线的等宽关系。3、 面缓冲区的生成与线缓冲区类似,可将其视为闭合的线缓冲区,按照线缓冲区的生成方法产生。三、叠置分析将不同层的地物要素相重叠,使得一些要素或属性相叠加,从而获取新信息的方法。包括合成叠置分析和统计叠置分析。对于点面叠置,主要的要算每一个点是否在多边形内,我用的是从该点向左做一条射 线,然后计算该射线与多边形的交点的个数,如果为奇数,那么该点在多边形内,否则该点 在多边形外。并且将该函数独立出来,方便其他函数调用。 对于线面叠置,则是计算折线的每一条线段和多边形的交点,然后将使用这些交点将该 线段分割为n 个子线段,对于每一个子线段可以确定,该线段要么全部在多边形外,要么全部在多边形内,这样只需要判断该线段的中点即可以知道该线段是否在多边形内,对于在多边形内的线段,使用粗线段渲染出来。 对于面面叠置,将两层多边形的边界全部进行边界求交运算和切割,然后根据切割的弧段重建拓扑关系,最后判断新叠置的多边形分别落在原始多边形层的哪个多边形内,建立叠置多边形与原多边形的关系,如果必要再抽取属性。使用CRgn 类来求两个多边形的交、并、补,并且将该区域渲染出来。四、 成果截图一、缓冲区分析以下是点缓冲区、线缓冲区和面缓冲区的截图效果:二、叠置分析首先,先画两个多边形(多边形的填充颜色为蓝色),截图如下:依次对其求交、并、补(填充颜色为绿色),如下:两多边形相交结果:两多边形求“并”的结果:两多边形求“补”的结果:五、实习体会本次实习,我收获颇多,主要是进一步熟悉了空间分析的理论和方法,特别是熟悉了缓冲区分析和叠置分析。同时,也增加了利用VC编程的技巧。本次实习也遇到过不少问题,编程的时候出现过一些BUG,不过最后都一一调整正确了。因为编程的过程就是一个不断调试的过程,并且在这个过程中我学到了不少东西。总之,通过本次实习,我学习和掌握了部分空间分析的基本算法,对于从底层开发GIS 分析功能有了一定的经验,同时建议老师在布置这类作业时能够提供一些可供使用的具体算法,这样能够使我们在不知道如何实现时有一定的参考。5

    注意事项

    本文(空间分析编程报告.doc)为本站会员(asd****56)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开