登录
首页 » Others » 地理信息系统二次开发实例教程-c#+ArcGis

地理信息系统二次开发实例教程-c#+ArcGis

于 2020-12-05 发布
0 311
下载积分: 1 下载次数: 2

代码说明:

地理信息系统二次开发实例教程-c#+ArcGis面,包括需求分析、数据管理设计、用户界面设计、设计模式在软件开发中的应用。在开发过程中应用软件工程技术,可以提高软件开发效率和质量。第章“需求分析”介纽了“北京市地理信息公众查询系统”的需求分析,包括需求概述、功能需求以及功能需求详细描述。第章“系统总体设计”介绍了系统平台选择、系统总体框架、系统数据组织及系统开发进度安排等。第章“系统详细设计”根据系统的总体设计结构分别从北京市地理信息公众查询系统的数据库设计和一些相关类的设计两方面米详细阐述系统的设计。第章“系统主界面的实现”首先简单介绍的功能、特点、结构及其数据源,然后介绍如何设计系统的主界面及主要实现代码。第章“选择与査询功能的实现”主要介绍如何通过查询与数据集有关的衣从数据中获取信息,以及如何通过空间和逻辑的查询方法从数据中获取信息。第章“系统其他辅助功能”介绍了系统中其他一些辅助功能的实现,例如当鼠标移动到某地物上并稍做停留后,岀现一个小标签,显示该地物的名称,以及距离量算、面积量算的实现,等等。为了让读者更加全面地掌握的廾发,第章介绍了“北京市地理信息公众査询系统”开发过稈中没有涉及到的一些对象,包括投影对象、地址匹配对象、动态跟踪层(对象与地理事件()对象。科海网站提供了本书涉及的所有源代码,以及实现书中内容所需的所有组件。读者可以从中下载这些资料。由于时间仓促,书中难免有一些错误、遺漏,恳请读者谅解,并提出批评和指正编者2004年5月日录第章地理信息系统软件工程软件工程简介基本概念软件系统开发过程开发过程模型需求分析需求获取需求规约数据管理设计全部采用文件管理文件结合关系数据库管理全部采用关系数据库合理采用面向对象数据库管理用户界面设计界面设计原则界面设计中的要素界面样式应用模式与开发方式应用模式开发方式“北京市地理信息公众查询系统”介绍第章需求分析需求概述功能性需求系统体系结构用户描述具体功能需求非功能性需求功能需求详细描述第章系统总体设计系统平台选择便件平台目录系统操作平台数据库平台系统川发模式与组件选择开发工具系统总体框架系统功能框架系统数据库系统的川发结构系统界面组织系统数据组织系统数据的逻辑组织系统的主要数据类型进度规划第章系统详细设计数据库详细设计地名分类编码元数据表结构电子地图数据系统相关类的详细设计辅助类的详细设计类的详细设计类的详细设计类的详细设计类的详细设计第章系统主界面的实现简介的功能的特点的结构的数据源建立项目加入地图控件加入其他引用创建位图资源主窗体的实现界面设汁基本编码类的初步实现目录辅助类的实现类的成员变量读取元数据创建主窗口中的工作区创建I作区创建“地图”选项卡创建“查询”选项卡创建“帮助”选项卡图层的加入与控制在地图中加入图层依据比例尺控制图层显小通过“地图”选项卡控制地图显示控制显示的地物类型控制地图显示区域地图的放大、缩小、全图显示和漫游其他辅助功能的实现鹰眼功能的实现显示经纬度第章选择与查询功能的实现选择地物查询地物信息地名查询查找最近地物公交查询公交站点与线路查询乘车路线询地名索引查洎绀果的定位与更详细信息最短路径查询第章系统其他辅助功能地名的快速显示距离量算与面积量算其他工具栏按钮功能的实现地图输出子系统的实现在线帮助子系统的实现第章的其他对象动态跟踪层对象与对象目录对象的属性对象的方法对象的属性对象的方法实例应用投影对象坐标系地图投影地理编码用于地址匹配的专用文件绘制街道文件地理编码对象地址定位对象地址标准化对象交耳式地址兀配批地址匹配第章地理信息系统软件⊥程在地理信息系统(开发过程中应用软件工程技术,可以提高软件开发效率和质量。本章首先介绍了软件工程的基本概念、软件系统开发过程和开发过程模型。然后讲述了软件工程技术在系统廾发中的应用:需求分析、数据管理设计、用户界面设计、设计模式在软件开发中的应用。这些方面涉及了开发过程中的不同阶段及不同层次,有些方法之间是互斥的,如和方法,但是软件工程技术最重要的特点是实用,开发者可以根据只体情况选用不同的技术。软件工程简介基本概念计算机软件工程是一类求解工程。它应用计算机科学、数学、工程科学及管理科学等原理,借鉴传统工程的原则、方法创建软件,以达到提高软件质量、降低开发成本的目的。其中,讣算杋科学、数学用于构造模型与算法,工程科学用于制定规范、设计范型、评估成本及确定权衡,管理科学用于管理计划、资源、质量、成本等。从学科角度来看,软件⊥程是·门指导计算机软件开发和维护的上程学科。软件工程的提出是为了解决世纪年代出现的软件危机,当时在大型软件开发项日中存在着成本髙、开发进程不易控制、开发工作量难于估算、软件质量低、项目失败率高等诸多闩题,给软件行业带来了巨大的沖击。软件工程提出了一系列理论、原则、方法及工具,试图解决这种软件危机。和其他工程一样,软件工程有自己的目标、活动和原则,其框架可以概括为图所示的内容。分多//算持开发范型需现设计方法支持过程求管理过程图软什工稈框架第章地理信息系统软件工程软件工程的目标可以概括为“生产具有正确性、可用性及开销合宜的宀品”,其活动包括需求、改计、实现、确认及支持等。围绕工程设计、支持及管理,软件工程有以下条基本原则:)选取适宜的廾发模型。选取适宜的廾发模型可以利」认识需求易变性并加以控制以保证软件产品满足用户的需求〔)采用合适的设计方法。通常要考虑实现软件的模块化、抽象与信息隐藏、本地化致性及适应性等特征。()提供高质量的工程支持。在软件工程中,软件工具与环境对软件过程的支持颇为重要。()重视开发过稈的管理。开发过程的管理直接影响可用资溟的有效利用、最终的软件产品的满意度,软件组织的生产能力等问题。只有对开发过程实施有效管理,才能实现有效的软件工程软件工程把软件工程的思想和方法应用于软件的开发过程。如前所述,软件工程活动包括需求、设计、实现、确认及支持等,它们对应」软件廾发过程的不同阶段。般来说,软件开发都要经历从分析设计到实现确认的过程。每个阶段按照相应的规范进行工作,并得到该阶段的成果,是保证整个开发过程戊功的关键。软件系统开发过程前面讲过,软件工程活动包括需求、设计、实现、确认及支持,它们对应于整个软件开发过程的不同阶段。需求分析需求分析阶段处于软件开发过程的前期,其基本活动是准确定义未来系统的目标,确定为满足用户的需求必须做什么。需求分析又划分为两个阶段,即需求获取和需求规约前者用自然语言清楚地描述用广的需求,而后者的目的是消除获取需求的二义性和不致性。在软件项目的生命周期中,一个错误发现得越晩,修复错误的代价也越髙,所以,高质量的需求工程是软件项目得以正确、高效完成的前提。对于系统分析人员,建立需求面临着以下个方面的困难:·问题空间的理解系统开发人员通常是计算机专业人员,难以深入理解各种业务系统所憂解决的问题空间。人与人之间的通信对于系统分析人员而言,通信主要包括同用户的通信以及同事之间的通信,由于自然语言的二义性,会给准确刻田需求造成障碍。·需求的不断变化造成需求变化的原因很多,包括技术、用户方、市场等等。作为分析人员,必须采用些策咯以适应变化。面向对象的分析方法被认为是解决上述闲难的较好技术,但是完整、准确地刻划问题空间始终是分析人员所面临的挑战第章地理信息系统软件工程系统设计一般来说,需求分析阶段的主要任务是确定系统“做什么”,而系统设计阶段则要解决“怎么倣”的问题。系统设计的任务是将系统分析阶段提出的逻辑模型转化为相应的物理模型,其设计的内容随系统的目标、数据的性质和系统的不同而有很大的差异。一般前言,首先应根据系统的目标,确定系统必须具备的空间操作功能,称为功能设计;其次是系统的建模和产品的输出,称为应用设计。系统设计是系统整个开发工作的核心,不但要完成熤辑模型所规定的任务,而且要使所改计的系统达到优化。所谓优化,就是选择最优方案,使系统具有运行效率高、控制性能好和可变性强等特点。要提高系统的运行效率,般要尽量避免中问文件的建立,减少文件扫摧的遍薮,并尽量采用优化的数据处理算法为增强系统的搾制能丿,要拟定对数字和字符岀错时的校验方法;在使用数据文件时,要设置口令,防止数据泄密和被非法修改,保证只能通过特定的通道存取数据。为了提高系统的可变性,最有效的方法是釆用模块化的方法,即先将氅个系统看成一个模块,然后按功能分解为若干个子模块。一个模只执行一种功能,一种功能只用一个模垗实现,这样设计出来的系统才能做到可变性好并具有生命力。功能设计又称为系统的总体设计,它的主要仟务是根据系统的目标来规划系统的规模,确定系统的各个组成部分,并说明它们在整个系统中的作用与相互关系,以及确定系统的硬件軋置,规定系统采用的合适技术规范,以保证系统总体目标的实现。图给出了通用的总体设计结构图。因此,系统的总体设计大致包括数据库设计硬件配置与选购软件设计等应用设计又称详细设计。详细设计包括详细的算法、数据表示和数据结构、实施的功能和使用数据之间的关系。详细改计过程中采用了一些工只,以便对数据、算法等进行描述,包括流程图、,问题分析图)、盒图(图)、伪码实现阶段软件实现阶段将设计的结果变换成程序设计语言编写的程序。一般情况下在实现阶段,首先要确定程序改计语言,其影响因素包括:开发人员对语言的熟悉程度、语言的可移植性、编译程序的效率、编译工具的支持等等。目前,语言是被普遍采用的构造系统软件的编程语言,而则更多地应用于编写网络应用程序。无论采用哪一种编程语言,都要求编写高质量的源稈序代码,稈序质量通常包含正确性、可读性、可移植性、程序效率等指标。考虑到系统的维护和演化,提髙源程序的可读性是实觋阶段的一个重要目标,其途径包括添加注释、规范书写格式、确定标认符命名原则、采用结构化的程序设计方法(不用或减少使用语句)等。

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • Qt课设计_小区车辆管理系统
    QT4.8.1版本开发,数据库为SQLite。主要功能:通过USB通信的读卡器对数据库中信息进行查找。登陆名:admin 密码:1234 该帐户用代码写死。可通过数据库查询方式进行查询。可写串口连接门禁设备。为课程设计大作业所用,功能略简单。仅供参考。
    2020-12-01下载
    积分:1
  • maple中文教
    maple教程,让你更好的学习maple,教程完整而且全面1.3 Maple的基本功能maillist: mathgroupowolfram comMaple的网络资源:http://www.maplesoft.comhttp://daisy.uwaterloo.caftp//ftp.maplesoft.commaillist: maple-listodaisy uwaterloo caMatlab的网络资源http://www.mathworks.comftp//ftp.mathworks.comnews: //comp. soft-sys matlabREDUCE的网络资源http://www.rrz.uni-koeln.de/reducehttp://www.zib.de/symbolik/reduceftp: //ftp. rand. org/software_and_data/reduce符号计算研究机构及信息中心http://t mcs. kelh七七p://ww.cain.nl/http://www.risc.uni-linz.ac.atnews: //sci. math. symbolic其它符号计算软件的网络地址Derivehttp://www.derive.comMacaulay2http://www.math.uiuc.edu/macaulay2/Macsymahttp://www.macsyma.comMagmahttp://www.maths.usydeduau:8000/u/magma,Mathcadhttp://www.mathsoft.com№uPadhttp://www.mupad.deScilabhttp://www-rocq.inria.fr/scilab/13 Maple的基本功能计算札代数系统与其它计算札语言的木质区别是:计算机代数系统具有符号计算的能力,为用户提供交互式的计算环境,可以进行常规的数学计算,可以根据给定的数学函数画出函数的二维或三维图形.下面我们简要描述 Maple的基本功能数值计算对于普通的数, Maple总是进行精确的计算,这种规则对于有理数和无理数是相冋的.因此对于无珥数 Maple按照有关的数学规则进行计算,只有当用户需要计算浮点数近似值时, Maple才按照用户要求的精度计算>1/5+1/49第一章 Maple系统简介5!/21evalf o%)5.7142857141f(Pi,40)3.14159265589793238462643:383279502884197>2.496745643/2;1.248372822>abs(3+5*I);>(3+4*I)/(1+工);从上面的例子可以看到,对于复薮Mape按照复数的规则进行计算.多项式符号计算系统的最基本功能是处理符号表达式,多项式则是最基本的符号表达式.从下面的例子中可以看到 Maple可以用各种方式处理多项式、三角表达式、指数与对数等许多数学表达式> factor(x^4+2*x^3-12米x^2+40*x-64(x-2)(x3+4x2-4x:+32)expand((x+1)"5)+5x4+10x3+10:2+5x+1lify (exp (x*log(y)))simplify(sin(x)2+cos(x)2)> xpand((x2-a)^3*(x+b-1));x7+x6b-26-3:5a-3x4ab+34a+3x3a2+3x2a2b-3x2a2-a3-a3b+a3expand(cos (4*x)+4*cos(2*x)+3, trig)1.3Mapl的基本功能bine(4*cos(x)"3, trig)cos (3 c)+3 cos(a)解方程用 Maple来解简单的方程是毫无问题的,即使是很复杂的方程 Maple也可以用数值计算的方法来处理.>Slve(x^2-3*x=2,x);31>g1sys:={2*x+31,x-y-z=4,3*x+7*z=3solve(glsys)24974311> fsolve({x2+y2=10,x^y=2},{x,y});{=3.102449071,y=.6122170880}矩阵计算Mapl还有许多命令可以处理矩阵和向量,不过需要调用线性代数软件包1inag.还有一点特别的是,作矩阵的乘法需要一个特殊的算子&*>with (linalg)Warning, new definition for normWarning, new definition for traceatrix([[2,3],[1,4]);2314inverse(a), det(a)([L,x],[y,z]])b:=第一章 Maple系统简介eval(a+b)2+03++y4+eval(a &* b)2w+3y2x+3+4yx+4极限,求和与乘积对于普通的求极限问题,可以接用 Maple来计算,它还可以符号的计算级数的和与积.当符号计算不成功时,还可以作数值计算>1imit((sqrt(1+x)-1)/x,x=0);limit(x!/xx, infinity);y);evalf(product(1+1/x"2, x=1.. infinity ));3.676077910微分与积分用 Maple来求微分是相当容易的,使用diff命令即可以求出数学表达式的微分,不过求出的结果可能是相当复杂,因此運常还要用 simplify命令进行化简.求数学表达式的定积分和不定积分就相对复杂一些,需要某些特定的算法.对于复杂的函数,求出的结果可能是某些特殊函数.对于定积分,还可以用eva1f求出积分的数值.simplify(diff((x-1)/(x"2+1), x));1-2diff(sin(x*y),x);g ) yint(1/(1+x+x^2),x);2cH1.3 Maple的基本功能int(sin(x 2),x=a.b)FresnelS(bint(sin (x)/x, x=o.5)eva1.549931245微分方程对于不太复杂的常微分方程, Maple可以求出它的符号解.如果你没有给初始条件,或者给的初始条什或边界条件不全,在解的公式中会带有积分常量> deq: =diff(y(x), x)*y(x)(1+x 2)=x;n:=(ny(x)y()(1+x2)dsolve(deq},{y(x)});y(a)=vIn(1+ c2), y(a)ln(1+x:2)> dsolve((y(x)2-x)*D(y)(x)+x^2-y(x)=0,{y(x)});1- y().r+oy()C1级数展开当数学问题比较复杂时,求出准确解通常是不可能的,用 serles作级数展开是有帮助的series(sin(x), x=0, 10)9+O(x5040362880例如在下列微分方程中,就是用级数方式求出的微分方程级数解>口rder:=10deq: =diff(y(x), x$2)+diff(y(x), x)+(x)=x+sin(x02v(a))+y(a)> sln1:=dsolve((deg, y(0)=0, D(y)(0)=0,y(x)1, series)3nt:y(m)=a2-1412405040x23+O(x21)20160181440第一章 Maple系统筒介Laplace和 Fourier变换Laplace变换和 Fourier变换是常用的数学变换.在 Maple中有一个积分变换的程序包inttrans提供了各种积分变换和它们的逆变换with (inttrans)s);s cos(a)+sin(a+1invlaplace(%,s, t)(a)cos(t)+sin(a)sin(tcombine(%, trig);(t-a)alias(sigma=Heaviside)f: =sigma(t+1)g: =simplify(fourier(f, t, w))I(T Dirac(an)w-Dsin(an)插值与函数拟合的像々命令可以由m个点出发计算m-1阶的插值多项式.在下例中的取值是1到10y的值是1到10之间的10个随机数f是相应的插值多项式datax:=[seq (i, i=1.10)]> data:=[seq(rand(10)(),i=1..10)]dataxy: =zip((x, y)->Lx,y], datax, datay)dater:=[1,1],②2,0],[3.7,[4,3],⑤,6],6,8,[7,5,8,8],[⑨,1,[10,9f:=interp(datax, data, x)1751711699371927323176741652577518404U3206048028801728057603240l8116483166915333602520x-2使用数值逼近程序包 numapprox中的pade命令可以计算一个给定函数的有理逼近函数以及其它类型的逼近函数with(numapprox)>x0:= solve(x^2=Pi/2)[1]T1.3 Maple的基本功能>f:=pade(tan(x^2),x=x0,[3,3])f:=(-17280m19/2√2+10800%17+43200%138-76809%13x103072%12m25/2√2-324007152V2+3840x232√2+2880%179+30729%13712+2010%2x2¥2-14100%1x2y2-1520%1m2)/(-11520丌1+1024x13-1400x9-10800)%1+(7680x23/22-115209/2v2+21600m15/2v2%12+(-7680m12+3156010+648007)%1)1:=evalf(normal(f))45329581221092-.1125313130109+10541843601093+.5353835473109x)/(2(.109716870010x2+.S958248690103-,135628886010)图形最常用的画图命令是plot和plot3d.下面的例子说明了使用在两个命令的方法>plot(sin(x)*exp(1)^(-x/7),x=0,,4*Pi);plot 3d(sin(x)exp(1)"y, x=0.. 2*Pi, y=0.. Pi, axes=boxedMaple编程Maple不仅可以对数学表达式进行计算,还可以编程.他的编程语言和其它的结构化编程语言很相似第一章 Maple系统简介f(x:: nonnegint)2 option rememberif x=0 then olif x=1 then 1else f(x-1)+f(x-2) end ifend>f(40)10233415514 Maple系统的交互使用Maple的窗口环境提供了先进的工作区界面.其护充的数学功能简明易用,用户可以在其中展现数学思想,创建复杂的技术报告,充分发挥 Maple的功能图1.1: Maple的窗凵环境B6型团囚K9 United [u]. 5e e11C wOrksheet ElementsABTAEZHIKAMint((PI/2)3in(x)+22,:NEOIPLYXΩI cor]+-plo({-1/2too8(x),x=10.,10际回四a Maple的上具条B内容工具条,它还包含一个输入和编辑文本的区域C节的头部及标题D Maple的输入,提小符为“>”,显小为红色
    2020-12-08下载
    积分:1
  • 电网络理论(邱关源)
    不错的书,邱关源的另外一本经典书,关于电路方面的经典书籍 ,可以好好看看
    2021-05-06下载
    积分:1
  • 经典优化理论与应用合集(全局最优化,凸优化,数值优化及优化综述文章)
    【实例简介】这里列出其中一些名堂: 1.[book] global optimization(全局最优化算法) 2.[book] numerical+optimization(数值最优化经典) 3.Convex Optimization Overview(凸优化技术综述) 4.Handbook of Global Optimization(全局优化手册 5.Introduction to Global Optimization 全局优化入门 .....
    2021-11-01 00:33:52下载
    积分:1
  • 六自由度机械臂正逆运动Matlab仿真
    自己做的机械臂仿真,使用的MATLAB2016b。运行znGUI使用,动态显示机械臂变化,各个关节角的具体变化从变量cz中提取
    2020-11-30下载
    积分:1
  • UKF无迹卡尔曼滤波器代码实现.m
    【实例简介】以匀速直线运动为例,设计了基于距离的目标跟踪算法,即状态量为X、Y轴的位置和速度,观测值为物体到观测站的距离,具体实现过程见代码
    2021-11-24 00:46:34下载
    积分:1
  • 声音信号处理matlab实现
    matlab实现声音信号的采集、加噪、低通、高通、带通滤波,回放声音信号。
    2021-05-06下载
    积分:1
  • 基于单片机脉搏计心率计设计
    基于单片机脉搏计心率计设计,采用红外对管采集血液冲放频率,利用单片机中断计数,lcd显示数据,记过多人测试决定稳定准确,可以根据不同人调灵敏度!含有源代码,原理图和pcb图,仿真图,参考论文。
    2020-12-04下载
    积分:1
  • 58mm热敏打印机控制源代码(ARM920T) 实时组点阵无需缓存
    【实例简介】此驱动基于ARM920T内核,尝试对通用打印内容进行优化,实时构建打印点阵,不需要点阵缓存。连续打印无需等。GB2312字库读取,连续打印无需等待。实现了字体的单双维缩放。
    2021-11-05 00:36:00下载
    积分:1
  • 51单片机密码锁PROTEUS仿真
    51单片机密码锁PROTEUS仿真,51单片机密码锁PROTEUS仿真,51单片机密码锁PROTEUS仿真。
    2020-11-30下载
    积分:1
  • 696516资源总数
  • 106554会员总数
  • 12今日下载