书签 分享 收藏 举报 版权申诉 / 63
上传文档赚钱

类型GIS程序设计课件:GIS程序设计2.ppt

  • 上传人(卖家):罗嗣辉
  • 文档编号:2045762
  • 上传时间:2022-01-21
  • 格式:PPT
  • 页数:63
  • 大小:6.71MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《GIS程序设计课件:GIS程序设计2.ppt》由用户(罗嗣辉)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    GIS 程序设计 课件
    资源描述:

    1、GISGIS程序设计基础程序设计基础主要内容主要内容一一C+C+二二COMCOM三三DBADBA四四并行计算并行计算1 C+ 介绍介绍C+ reviewn C+语言基础n Object-Based Programmingn Object-Oriented Programmingn STLC+ in my opinionn C+语言在变化,我们的概念也要调整变化n 最能反映OO思想的语言,掌握C+有助于理解OOn 区分C和C+,C+不是C语言,不要用看待C语言的方式来看待C+The foundation for C+n 操作系统的基础知识 文件API、内存管理 infrastructuresn

    2、计算机原理 汇编语言 C/C+是产生ASM代码的frameworkn 编译和执行过程 编译过程 执行过程n 许多概念 进程、heap、stack,.程序开发过程程序开发过程开发编辑编译出错?链接执行结果正确?结束源程序file.cpp目标程序file.obj库函数和其它OBJ可执行程序file.exeYesYesNoNoBuild过程:过程:compile timen Compile + linkn 如何对待错误和警告 错误:一定要排除,从第一个错误找起 警告:或者排除,或者确实理解不会对程序造成危害n 学会设置compile options和link options IDE中如何设置? 一定

    3、要知道! 命令行如何设置? 程序代码中如何设置?执行过程:执行过程:runtimen Load、重定位、初始化、mainn 如何调试 断点 assertionn 程序对环境的依赖性 系统环境 CRT 内存影响C+语言语言内容内容n 数据类型 内置(built-in)、标准库、自定义的n 表达式n 控制语句n 函数(模板)n 异常处理C+标准库标准库n C标准库n iostream librarycin、cout、cerrostream& operator (istream& os, MyClass&)n STL(Standard Template Library)n 例子:template T

    4、ype min(Type a, Type b)return ab?a:b;n min(10,20);min(10.0, 20.0);n 模板实例化 由参数决定 隐式实例化 显式实例化 min(10,20);函数模板函数模板n Why ?n For instance Macro:# define max(a,b) (a)(b)?(a):(b) Overload:int max(int a,int b) return ab?a:b;float max(float a,float b) return ab?a:b;异常处理异常处理(exception handling)n 错误处理机制、错误代码隔离

    5、n Throw (raise) an exception Throw expression 类似于return 语句n Try、catch语句(handler) try catch(type) 或 catch(type obj)n 类似于函数调用 但是类型匹配发生在runtimeObject-Based Programmingn class实现数据封装n 对象n 构造函数与析构函数n 嵌套类n 类中成员初始化n 虚拟函数n 类中运算符重载n 类模板this指针指针n 在类的内部指向类自身的指针n 在每个成员函数中,this指针提供了使用上的方便n this指针把类的多个实例对象区分开来模板模板

    6、n函数模板 即以数据类型为“参数”的函数 例如: template Swap(T &a, T&b) T temp; temp = a; a = b; b = temp; n 类模板类模板( (模板类或类生成器模板类或类生成器) ) 即以数据类型为即以数据类型为“参数参数”的类的类 例如:例如: template class template class StackStack private : private : T T poolmaxNumpoolmaxNum; ; intint sp; sp; public: public: Stack(); Stack(); void void Push

    7、(TPush(T x); x); T Pop(); T Pop(); BOOL BOOL IsEmptyIsEmpty() const;() const; BOOL BOOL IsFullIsFull() const;() const; ; ; 使用:使用: Stack Stack intStackintStack; ; Stack Stack floatfloat Stack; Stack;从面向过程转换到面向对象从面向过程转换到面向对象n 面向过程以功能为组织单元面向过程以功能为组织单元 在在C C语言中以函数作为功能单元;语言中以函数作为功能单元; 通过数据结构来描述具体的问题;通过数据

    8、结构来描述具体的问题; 数据在功能数据在功能( (函数函数) )之间以参数的形式被传送。之间以参数的形式被传送。 n 面向对象面向对象 用类用类classclass封装数据以及与数据相关的操作;封装数据以及与数据相关的操作; 用类的继承性来实现类的重用性;用类的继承性来实现类的重用性; 多态性。多态性。Object-Oriented Programmingn CShapen CPointn CLinen CCirclen CArcn CTextCShapeCPointCLineCCircleCArcCText多态性和虚拟函数多态性和虚拟函数n 多态性是面向对象的一个支柱 允许程序在实施对象的操

    9、作时,允许对象按不同的方式完成不同类型对象的操作;不同类型对象有自己实现操作的方法。n 虚拟函数虚拟函数实现了多态性。说明:在函数说明之前加上关键字virtual在基类的说明中,定义虚拟函数:virtual void Display();调用:CShape *pShape = GetCurrentShape();pShape-Display();关于程序语言学习关于程序语言学习克服当前程序语言学习的克服当前程序语言学习的“三个三个”主义主义 拿来主义:缺乏自己的思考拿来主义:缺乏自己的思考 本本主义:为了考证而学习本本主义:为了考证而学习 迷茫主义:不知道该怎么培养自己的动手能力迷茫主义:不知

    10、道该怎么培养自己的动手能力想学英语一样想学英语一样学程序语言!学程序语言!n 象学英语一样学VC+n “授人以鱼不如授人以渔” 语言的学习能力胜于学习语言本身n 强制动手编程:项目的压力n 强制自主学习:积累与成功感n 学会利用资源:自己实现别人的程序关于程序语言学习关于程序语言学习质疑猜测实践验证动手实践动手实践! !2、COM程序、组件和插件程序、组件和插件系统中一种物理系统中一种物理的、可代替的部的、可代替的部件、它封装了实件、它封装了实现并提供了一系现并提供了一系列可用的接口。列可用的接口。组件就是对象,组件就是对象,是对数据和方法是对数据和方法的简单封装的简单封装 程序程序(EXE)

    11、组件组件(COM)(COM)插件插件(DLL)(DLL)应用程序是指为了完成某项或某几项特定任务而被开发运行于操作系统之上的计算机程序。运行在用户运行在用户模式,它可以和用户模式,它可以和用户进行交互,具有可视进行交互,具有可视的用户界面的用户界面 插件是一种遵插件是一种遵循一定规范的循一定规范的应用程序接口应用程序接口编写出来的程编写出来的程序。序。 运行在应运行在应用程序提供的用程序提供的界面上界面上扩展扩展基础基础二次开发二次开发控件控件可视化的组件可视化的组件以以ArcGIS体系来说明体系来说明以以ArcGIS体系来说明体系来说明以以ArcGIS体系来说明体系来说明插件插件以以ArcG

    12、IS体系来说明体系来说明组件的二次开发组件的二次开发像用像用MFC下下控件一样使用控件一样使用组件的二次开发组件的二次开发举例举例如何封装组件如何封装组件学会封装组件的必要性学会封装组件的必要性解决解决软件发展中遇到的问题n 软件的复杂度增加 代码开发管理n 软件升级和更新 牵一而发动全身?n 分布式软件的发布和配置 用户需要培训,程序员和设计人员更需要n 依赖于全才开发人员 软件层次划分n 软件的可扩展性 用户可定制、脚本支持n 与标准接轨:如Web B/S如何封装组件如何封装组件n 现实:软件工程中的合作越来越普遍n 需要利用别人的资源n 需要以资源的方式提供n 同一项目组的合作学会封装组

    13、件的必要性学会封装组件的必要性现实中实际项目和工作的要求现实中实际项目和工作的要求如何封装组件如何封装组件一般动态连接库的开发与使用一般动态连接库的开发与使用由用户自己开发的、可以加入到最终用户(包括用户本人和由用户自己开发的、可以加入到最终用户(包括用户本人和其他使用该模块的人)应用程序中提供某一特定功能的函数其他使用该模块的人)应用程序中提供某一特定功能的函数和类的集合。和类的集合。包括:静态连接库和动态连接库包括:静态连接库和动态连接库 如何封装组件如何封装组件静态连接库的开发与使用静态连接库的开发与使用静态连接库提供了函数的完整的目标代码,如果程序调用静静态连接库提供了函数的完整的目标

    14、代码,如果程序调用静态连接库中的函数,则在进行连接时连接程序将静态连接库态连接库中的函数,则在进行连接时连接程序将静态连接库中所包含的该函数的代码拷贝至运行文件中。中所包含的该函数的代码拷贝至运行文件中。 开发与使用开发与使用调试调试 #ifndef _MYLIB_H#define _MYLIB_H#endif如何封装组件如何封装组件动态连接库的开发与使用动态连接库的开发与使用 动态连接库是一个可执行模块,其包含的函数可以由动态连接库是一个可执行模块,其包含的函数可以由Windows应用程序调用以执行一些功能。在程序连接动态连接应用程序调用以执行一些功能。在程序连接动态连接库中的函数时,连接程

    15、序并不将包含在动态连接库中的函数的库中的函数时,连接程序并不将包含在动态连接库中的函数的目标代码拷贝至运行文件,而只是简单地记录了函数的位置信目标代码拷贝至运行文件,而只是简单地记录了函数的位置信息,程序在执行时,即可找到该函数的目标代码。因为只是在息,程序在执行时,即可找到该函数的目标代码。因为只是在执行时才得到真正的连接,因此称为动态连接。执行时才得到真正的连接,因此称为动态连接。开发与使用调试 /DEF 文件文件LIBRARY DLLLIBEXPORTS TestDllLib TestDllMFCConnect如何封装组件如何封装组件推荐动态连接库的开发与使用推荐动态连接库的开发与使用1

    16、、微软的扩展、微软的扩展 DLL2、输出类方式、输出类方式AFX_CLASS_EXPORT 如何封装组件如何封装组件ActiveX的开发与使用的开发与使用 ActiveX是在是在MS与与JAVA抗争时产生的一个新名词(抗争时产生的一个新名词(1996年年3月),月),ActiveX技术的前身是技术的前身是OLE技术是技术是MS为了适应为了适应Internet的发展对的发展对OLE进行的扩展(当时的含义是进行的扩展(当时的含义是“Activate the Internet”),当时只是为了发展一种小型的可从网络上快),当时只是为了发展一种小型的可从网络上快速下载的可重用组件。速下载的可重用组件。

    17、 现在的现在的ActiveX控件等价与以前的控件等价与以前的OLE控件或控件或OCX,一个典,一个典型的控件包括设计时和运行时的用户界面,唯一的型的控件包括设计时和运行时的用户界面,唯一的IDispatch接接口定义了控件的属性和方法,唯一的口定义了控件的属性和方法,唯一的IConnectionPoint接口定接口定义控件可引发的事件。一个控件可以在容器中运行,所以从运行义控件可引发的事件。一个控件可以在容器中运行,所以从运行的角度看它类似与一个的角度看它类似与一个DLL。由于在。由于在IE中添加了对控件的支持,中添加了对控件的支持,所以你可以在所以你可以在WEB页面中通过页面中通过VBScr

    18、ipt对控件进行操纵。对控件进行操纵。 如何封装组件如何封装组件图像显示控件开发实践图像显示控件开发实践3、DBA数据库标准接口数据库标准接口传统方式传统方式数据库标准接口数据库标准接口数据库接口数据库接口数据库标准接数据库标准接口口数据库标准接口数据库标准接口1使用户程序有很高使用户程序有很高的互操作性,相同的互操作性,相同的目标代码适用于的目标代码适用于不同的不同的DBMS2由于由于ODBC的开放的开放性,它为程序集成性,它为程序集成提供了便利,为客提供了便利,为客户机户机/服务器结构服务器结构提供了技术支持提供了技术支持3由于应用与底层网由于应用与底层网络环境和络环境和DBMS分分开,简

    19、化了开发维开,简化了开发维护上的困难护上的困难数据库接口技术的分类数据库接口技术的分类微软最新的数微软最新的数据访问技术据访问技术 ,用以实现访问用以实现访问关系或非关系关系或非关系数据库中的数数据库中的数据。据。 ADOMicrosoft推出推出的最早的整合的最早的整合异质数据库的异质数据库的数据库接口,数据库接口,现在已成为一现在已成为一种事实上的标种事实上的标准。准。ODBC是执行是执行SQL语语句的句的Java API ,由一组用,由一组用Java语言编写语言编写的类与接口组的类与接口组成。成。JDBCVC+数据库访问方式数据库访问方式n1 1、ODBC API ODBC API n2

    20、 2、MFC ODBCMFC ODBCn3 3、DAO DAO n4 4、OLE DBOLE DBn5 5、ADOADOVC+数据库访问方式数据库访问方式n1 1、ODBC APIODBC API ODBC(Open Database Connectivity)是被广泛应用的用于数据库访问技术的应用程序编程接口 ,ODBC是为最大的互用性而设计的,即一个应用程序用相同的源代码能够访问不同的数据库管理系统(DBMS)。 VC+数据库访问方式数据库访问方式n2 2、MFC ODBCMFC ODBC MFC ODBC(Microsoft Foundation Classes ODBC) ,ODBC虽

    21、然提供了一种统一访问数据库的接口,但是直接使用ODBC API创建应用程序需要编制大量的代码所以,Visual C+中提供了MFC ODBCMFC ODBC类,类,在在MFC ODBCMFC ODBC类中封装了类中封装了ODBC APIODBC API,提供了面向对象的数据库类。这使创建数据库应用程序的过程大大简化。 VC+数据库访问方式数据库访问方式n3 3、DAODAO DAO(Data Access Object) ,DAO(数据库访问对象)提供了一种通过程序代码创建和操作数据库的机制。多个 DAO对象构成一个体系结构,在这个结构中,各个DAO对象协同工作,通过Microsoft Jet

    22、数据库访问数据库中的数据和数据库的结构定义。MFC DAO是微软推出的用于在Visual C+中访问Microsoft Jet数据库文件(*mdb)的强有力的数据库开发工具,它通过对DAO对象的封装,向程序员提供了丰富的数据库访问和数据库操纵手段。VC+数据库访问方式数据库访问方式n4 4、OLE DBOLE DB OLE DB(0bject Link and Embedding Database) ,OLE DB提供企业网络级的通用数据集成,从主机到桌面,而不管数据的种类,OLEDB 比ODBC对数据的操纵更加普遍也更加有效,因为它允许更多种类的数据,并且它是基于COM模型的。 OLE DB

    23、技术是Visual C+开发数据库应用程序所提供的新技术,与传统的数据库访问技术相比,OLE DB有两种重要的改进:OLE DB技术基于COM接口和OLE DB为所有的文件系统包括关系数据库和非关系数据库提供了一种统一的接口。这些特性使OLE DB技术比传统的数据库访问技术更加优越。VC+数据库访问方式数据库访问方式n5 5、ADOADO ADO (ActiveX Data Object),ADO是面向对象的OLE DB,它继承了OLE DB技术的优点,并且,ADO对OLE DB 接口作了封装,定义了ADO对象,使应用程序的开发得到简化,ADO技术属于数据库访问的高层接口。创建创建ADO数据库

    24、访问程序数据库访问程序 n 1 1 创建工程框架创建工程框架n 2 2 在工程中插入在工程中插入ADOADO控件控件n 3 3 导入导入ADO DataADO Data控件和控件和Data GridData Grid控件控件n 4 4 设置设置ADO DataADO Data控件属性控件属性n 5 5 设置设置ADO ADO DataGridDataGrid控件的属性控件的属性4、并行计算、并行计算并行计算并行计算并行计算(Parallel Computing) fu fu 并行计算并行计算并行计算(Parallel Computing)n 并行时代已经到来 频率提升受到限制 多核CPU成为主

    25、流并向着更多的核发展n 为什么我们需要并行计算? 更快的完成计算(更低的延迟) 处理更大规模的问题(更高的吞吐量)并行计算并行计算 fu fu networkParallel ProgrammingParallel Algorithm并行计算并行计算n 定义:通过多核或网络相互联接的两个以上的处理机相互协调,同时计算同一个任务的不同部分,从而提高问题求解速度,或者求解单机无法求解的大规模问题。n 两个目的: 提高速度; 扩大问题求解规模。多核多核CPU并行计算并行计算n多线程n多进程nOpenMP 用户在使用用户在使用3232位位WindowsWindows操作系统如操作系统如Windows

    26、XPWindows XP时,能够同时运行几个程序。这种能力称为多时,能够同时运行几个程序。这种能力称为多任务处理。多任务其实就可以理解为系统可以任务处理。多任务其实就可以理解为系统可以同时运行多个进程。同时运行多个进程。 进程(进程(ProcessProcess)是一个运行的程序,其由独立)是一个运行的程序,其由独立的虚拟内存、代码、文件句柄和其他系统资源的虚拟内存、代码、文件句柄和其他系统资源组成。简单的说,进程是操作系统分配内存地组成。简单的说,进程是操作系统分配内存地址空间的基本单位。址空间的基本单位。 线程(线程(ThreadThread)是操作系统分配处理器时间的)是操作系统分配处理

    27、器时间的最小单元。一个进程必须包含一个线程,称之最小单元。一个进程必须包含一个线程,称之为主线程。进程中的线程是并行执行的。每个为主线程。进程中的线程是并行执行的。每个线程占用线程占用CPUCPU的时间由系统来划分。的时间由系统来划分。多核多核CPU并行计算并行计算多核多核CPU并行计算并行计算 假如有一个工厂(应用程序)假如有一个工厂(应用程序)里面有很多的生产线(进里面有很多的生产线(进程)。有一道生产线上的某程)。有一道生产线上的某一道作业工序(线程),每一道作业工序(线程),每个人都会这个工序。当有订个人都会这个工序。当有订单过来时只有一个人处理这单过来时只有一个人处理这个工序的话工厂

    28、的效率很低,个工序的话工厂的效率很低,如果有多个人同时处理的话,如果有多个人同时处理的话,那么效率就提高了。但是订那么效率就提高了。但是订单中的数量是有限的,为保单中的数量是有限的,为保证都能挣到钱,那么工厂的证都能挣到钱,那么工厂的领导还要做一些安排。领导还要做一些安排。超出能力的线超出能力的线程相反会影响程相反会影响到效率到效率多核多核CPU并行计算并行计算 多线程指的是在一个程序中可以定义多个线多线程指的是在一个程序中可以定义多个线程并同时运行它们,每个线程可以执行不同程并同时运行它们,每个线程可以执行不同的任务。的任务。 与进程不同的是,同类多线程共享一块内存与进程不同的是,同类多线程

    29、共享一块内存空间和一组系统资源,所以系统创建多线程空间和一组系统资源,所以系统创建多线程开销相对较小。因此也称线程为轻负荷进程。开销相对较小。因此也称线程为轻负荷进程。 多进程就是多个多进程就是多个EXEEXE程序一起运行,只需要控程序一起运行,只需要控制好制好EXEEXE程序间的通讯就可以实现并行处理,程序间的通讯就可以实现并行处理,特别提醒的是每个特别提醒的是每个EXEEXE有单独的内存空间,因有单独的内存空间,因此可用内存比较大,非常适应于影像处理。此可用内存比较大,非常适应于影像处理。多核多核CPU并行计算并行计算n (1)(1)多线程技术使程序的响应速度更快多线程技术使程序的响应速度

    30、更快 , ,因为用户界面可以在因为用户界面可以在进行其它工作的同时一直处于活动状态进行其它工作的同时一直处于活动状态; ; n (2)(2)当前没有进行处理的任务时可以将处理器时间让给其它任当前没有进行处理的任务时可以将处理器时间让给其它任务务; ; n (3)(3)占用大量处理时间的任务可以定期将处理器时间让给其它占用大量处理时间的任务可以定期将处理器时间让给其它任务任务; ; n (4)(4)可以随时停止任务可以随时停止任务; ; n (5)(5)可以分别设置各个任务的优先级以优化性能。可以分别设置各个任务的优先级以优化性能。n 在以下情况下在以下情况下, ,最适合采用多线程处理最适合采用

    31、多线程处理: : n (1)(1)耗时或大量占用处理器的任务阻塞用户界面操作耗时或大量占用处理器的任务阻塞用户界面操作; ; n (2)(2)各个任务必须等待外部资源各个任务必须等待外部资源 ( (如远程文件或如远程文件或 InternetInternet连连接接) )。n (3)(3)提高数据处理的效率提高数据处理的效率多线程优势多线程优势多核多核CPU并行计算并行计算多进程缺点多进程缺点n (1)(1)等候使用共享资源时造成程序的运行速度变慢。等候使用共享资源时造成程序的运行速度变慢。 n (2)(2)对线程进行管理要求额外的对线程进行管理要求额外的 CPUCPU开销。开销。n (3)(3

    32、)线程的死锁。线程的死锁。n (4)(4)对公有变量的同时读或写,会导致无法预知的错误对公有变量的同时读或写,会导致无法预知的错误多线程实例多线程实例线程启动线程启动n AfxBeginThreadAfxBeginThread,CreateThreadCreateThread,_ _beginThreadbeginThreadn 线程终止线程终止n AfxEndThreadAfxEndThread,ExitThreadExitThread,TerminateThreadTerminateThreadn 线程间的通信与同步线程间的通信与同步n 全局变量、消息传递、事件、互斥、信号灯、等待函数全局

    33、变量、消息传递、事件、互斥、信号灯、等待函数n 线程函数线程函数n 线程函数的固定形式:线程函数的固定形式:n UINT UINT FunctionNameFunctionName (LPVOID (LPVOID pParampParam) )n FunctionNameFunctionName是用户自定义的函数名,是用户自定义的函数名,LPVOIDLPVOID表示指向空类型的表示指向空类型的指针,相当于指针,相当于voidvoid* *,必要时需要把这个指针转换成所需要的类型。,必要时需要把这个指针转换成所需要的类型。函数的返回值将作为线程的结束码,线程函数结束后线程就自动终止。函数的返回值

    34、将作为线程的结束码,线程函数结束后线程就自动终止。函数的返回值如果为函数的返回值如果为0 0,表示线程函数正常结束。,表示线程函数正常结束。多线程实例多线程实例 定义多线程计算数据结构定义多线程计算数据结构 算法模块进行并行处理改造算法模块进行并行处理改造 利用系统函数获取利用系统函数获取CPUCPU核数核数 创建多个计算线程及其句柄创建多个计算线程及其句柄 等待计算线程完成计算等待计算线程完成计算 释放句柄,清空内存释放句柄,清空内存设计要点设计要点图像处理多线程程序设计图像处理多线程程序设计OpenMPOpenMPOpenMP是作为共享存储标准而问世的。它是为在多处理机上编是作为共享存储标

    35、准而问世的。它是为在多处理机上编写并行程序而设计的一个应用编程接口。它包括一套编译指导写并行程序而设计的一个应用编程接口。它包括一套编译指导语句和一个用来支持它的函数库。语句和一个用来支持它的函数库。 要在Visual C+ 2005 中使用OpenMP只要将 Project 的Properties中C/C+里Language的OpenMP Support开启(参数为 /openmp),就可以让VC+2005 在编译时支持OpenMP 的语法了;而在编写使用OpenMP 的程序时,则需要先include OpenMP的头文件:omp.h。 要将 for 循环中并行化处理,非常简单,只要在前面加上一行 #pragma omp parallel for 就够了。

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:GIS程序设计课件:GIS程序设计2.ppt
    链接地址:https://www.163wenku.com/p-2045762.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库