已阅读5页,还剩71页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 y 5 7 a 2 3 本文介绍了地理信息系统( g i s ) 的一般情况,借助g i s 系统的城市排水管 网规划管理项目开发研究的必要性及可行性,城市排水管网规划及管理g i s 系统 的开发工具、开发方法和开发过程。 城市排水管网规划及管理g i s 系统c p p m _ g i s 是利用m a p i n f o 的二次开发工 具m a p b a s i c 和v i s u a b a s i c 语言将m a p i a f o 地图窗口集成到v b 程序中而开发 出来的应用程序。在该系统中,排水管网的空间数据与属性数据分别存储于 w l a p l n f o 表和a c c e s s 数据库中,编写程序将两者连接起来并实现一定的功能。 本文根据g i s 系统软件的开发过程按顺序介绍了c p p m 遗量s 的系统分析、需 求分析及各模块的功能设计,然后对应说明了各模块的程序实现。 在c p p m - g i s 系统中,水力计算模块是一个重要的组成部分。本文详细论述 了g i s 环境下建立排水管网优化设计的数学模型、排水管网的直接优化法。其中, 针对排水管网设计计算复杂、准确度低等问题,重点介绍了排水管网和排水管网 流量的递归算法。并结合广东省佛山市镇安片区排水管网的实例进行了具体说 明。 关键词:排水管网6 i sm a p i n f o v i s u a lb a s i c 直接优化法递归算法 a b s t r a c t t h i sp a p e ri n t r o d u c e st h eg e n e r a ls i t u a t i o no fg i s ,t h en e c e s s i t ya n df e a s i b i l i t y o fd e v e l o p i n gc i t yp i p e n e tp l a na n dm a n a g e m e n ts y s t e mb a s e do ng i s ,i n c l u d i n gt h e d e v e l o p m e n tt o o l s ,m e t h o da n dp r o c e s s c i t yp i p e - n e t p l a na n dm a n a g e m e n tu n d e rg i s ( c p p m - g i s ) i saa p p l i c a t i o n i n t e g r a t i n gm a p l n f om a p w i n d o w si n t ov i s u a lb a s i cp r o g r a mu s i n gm a p b a s i ca n d v i s u a lb a s i c i nt h i ss y s t e m ,t h es p a t i a ld a t aa n da t t r i b u t ed a t ao fd r a i n a g ep i p e n e ta r e s t o r a g e ds e p a r a t e l y i nm a p l n f ot a b l e s + a n da c c e s sd a t a b a s e t h e yc a nb el i n k e db y p r o g r a m a n d p r o v i d es o m es p e c i a lf u n c t i o n a c c o r d i n gt o t h ep r o c e s so fd e v e l o p i n gc p p m g i s ,t h i sp a p e ri n t r o d u c e st h e s y s t e m sa n a l y s i s ,r e q u i r e m e n ta n a l y s i sa n dt h ef u n c t i o nd e s i g n o fe v e r ym o d u l ei n o r d e r t h e nr e a l i z a t i o no fe v e r ym o d u l e i se x p l a i n e dc o r r e s p o n d i n g l y a sai m p o r t a n tc o m p o n e n ti nc p p m - g i s ,t h i sp a p e ri l l u s t r a t e sd e t a i l e d l yt h e m a t h e m a t i c sm o d e lo fo p t i m u md e s i g na n dd i r e c to p t i m i z a t i o nm e t h o df o rd r a i n a g e p i p e n e tu n d e r o i s a sak e y s t a g e i np l a n n i n ga n dd e s i g n i n gt h ed r a i n a g es y s t e m ,t h e c a c u l a t i o no fp i p e n e ti sv e r yc r i t i c a la n dt i m e c o n s u m i n g t h i sp a p e rb r i n g sf o r w a r d t h er e c u r s i v ea r i t h m e t i cf o rp i p e n e ta n dp i p e l i n ed e s i g n e d d i s c h a r g e m e a n w h i l e , w e g i v ea ne x a m p l e ,z h e n a nr e g i o ni nf o s h a nc i t y o fg u a n g d o n g p r o v i n c e ,t oi l l u s t r a t ei t k e yw o r d s :p i p e - n e t g i s m a p l n f o v i s u a l b a s i c d i r e c t o p t i m i z a t i o nm e t h o d r e c u r s i v ea r i t h m e t i c n 1 1 课题的提出 第一章概述 随着国民经济的快速发展,我国城市化进程同益加快,时代已对城市排水管 网的规划及管理提出了更高、更新的要求。在排水管网的规划方面长期以来, 我国城市排水规划关注的多是既定蓝图的实现,而忽视了规划本身对城市排水系 统实施过程的调控作用。规划中往往缺乏对实施的可行性论证和评估。造成规划 就事论事,事实上成了种短期行为或局部行为;另一方面,传统上的规划成果 只包括图纸和说明书,这些都是静态的东西,而规划的实施事实上是一个处于动 态的过程。 当传统规划试图用静态的图纸来解决动态的实际问题时往往会出现许多矛 盾,而解决矛盾的过程会使规划的实施大幅度偏离原来的目标,从而失去了原有 规划的控制作用。现代规划比较注重从“方案”( p l a n ) 副“实施”( a c t u a t ;, z a t i o n ) 的全过程调控,强调规划是一种动念发展与整体协调的过程。之所以将规划理解 成是“动态的过程”,一方面是因为规戋n 面对的问题在不断变化另一方面也出 于参与决策的各方面对问题的态度在不断改变【1 1 ;在排水管网的管理方面,由于 历史原因多数城市的排水管网信息资料管理工作滞后于城市建设速度。许多城市 至今还存在着管网资料不全、资料数值精度不高等情况,不能适应现代管理的需 要。为使排水管网的规划、建设、改造和管理始终处于最优控制状态,一方面要 深入研究排水系统规划的优化技术,另一方面城市排水管网管理及规划信息系统 的建立也势在必行。 借助g i s 系统的城市排水管网规划及管理项目的开发研究就是针对上述问 题而提出来的。 1 ,2 地理信息系统( g i s ) 概况 地理信息系统g i s ( g e o g r a p h i ci n f o r m a t i o ns y s t e m ) 是集计算机科学、地 理地质学、测绘科学、环境科学、奄f h j 科学、信息科学和管理科学等为体的多 学科结合的新兴边缘科学,它是2 0 世纪6 0 年代中期开始发展起来的项新技术, 其最大特点在于它能够将自然和人类社会活动的各种信息( 属性数据库) 与空问 能胃、空间分布及其窄间关系通过数字化( 图形数据库) 而有机地结合在一起2 1 。 国内外关于g i s 有许多定义,不同的应用领域,不同的专业对它的理解是不一样 的,目前还没有一个完全统一的被普遍接受的定义。 1 9 8 7 年英国教育部( d o e ) 对g i s 下的定义是:“g i s 是一种获取、存储、 检查、操作、分析和显示地球空间数据的计算机系统”;1 9 8 8 年美国国家地理信 息与分析中心( n c g i a ) 下的定义是:“为了获取、存储、检索、分析和显示空 间定位数据而建立的计算机化的数据库管理系统”l 引。应该说,上述定义均比较 科学地阐明了g i s 的含义、功能和特点。总之,地理信息系统是在计算机软硬件 支持下,以采集、存储、管理、检索、分析和描述空问物体的定位分布及与之相 关的属性数据、回答用户问题等为主要任务的计算机系统。 世界上第一个地理信息系统是由加拿大测量学家r f t o m l i n s o n 在1 9 6 3 年提 出茹建立的,称为加拿大地理信息系统( c g i s ) ,主要用于自然资源的规划和管 理。稍后,美国哈佛大学研究生部主任h o w a r dt f i s h e r 设计和建立了s y m a p 系统软件。但由于当时计算机技术水平的限制,使得g i s 带有更多的机助制图色 彩。 2 0 世纪7 0 年代,由于计算机硬件和软件技术的飞速发展,尤其是大容量存 储设备的使用,促进了g i s 在包括城市规划方面等诸多领域的应用和发展,不同 专题、不同规模、不同类型的各具特色的地理信息系统被研制开发出来。这一阶 段,g i s 受到政府主管部门、开发商和工程技术人员的普遍重视,一些商业公司 看准了它的商业价值,支付了巨额资金支持其研究丌发。 2 0 世纪8 0 年代g i s 技术逐步走向成熟,并在全世界范围内全面推广,其 应用领域也不断扩大。2 0 世纪8 0 年代是g i s 发展具有突破性的年代。涌现出一 批有代表性的g i s 软件,如a r c ,i n f o ,g e n a m a p ,s p a n s ,m a p i n f o ,e r d a s , m i c r o s t a t i o n ,s i c a d ,i g d s m r s 等。 到2 0 世纪9 0 年代,随着地理信息技术和数字化信息产品在全世界的推广, g i s 已初步成为一种新兴产业。投入使用的g i g 系统每2 到3 年就翻一番h l 。如 今,人们讨论的不再是是否需要利用g i s ,而是如何利用g i s 发挥其最大的效益。 地理信息系统的研制与应用在我国起步虽晚,但发展势头迅猛。g i s 在中国 的发展n r 分为三个阶段。第一阶段从1 9 7 0 年到1 9 8 0 年,为准备认知阶段,主要 进行魁论准备并丌始组建队伍和培训人力。第二阶段从1 9 8 1 年到1 9 8 5 年,为起 步阶段完成了技术引进、数据规范和标准的研究、空问数据库的建立、数据处 理和分 = 斤算法及应用软件的丌发等,对g i s 进行了理论探索和区域性的实验研 究。第! 阶段从1 9 8 6 年到现在,为初步发展阶段,我困g i s 的研究和应用进入 有组织、有计划、有目标的发展阶段。逐步建立了不同规模的组织机构、研究中 心和实验室。1 9 9 4 年中国g i s 协会在北京成立。 g i s 研究逐步与国民经济建设和社会生活需求相结合,并取得了重要进展和 实际应用效益。主要表现在四个方面:制定了国家地理信息系统规范,解决信 息共享和系统兼容问题,为全国地理信息系统的建立做准备。应用型g i s 发展 迅速。在引进的基础上扩充和研制了一批软件。开始出版有关地理信息系统 理论、技术和应用等方面的书籍,并积极开展国际合作。 1 3 借助g l s 系统的城市排水管网规划管理项目开发研究的意 义及可行性 g i s 的数据输入、管理、查询、输出及空间分析操作,特别是它所建立的二 维矢量拓扑关系及网络分析功能,为城市排水管网的规划设计、管理调控提供了 强有力的工具。随着计算机硬件性能的不断提高、储存容量加大和运算速度加快 以及g i s 基础平台的日趋成熟,基于g i s 系统的城市排水管网信息系统的开发 建设己成为可能,将计算机电算与g i s 技术相结合用于城市排水管网规划过程的 优化及管网建设过程信息管理,此类研究在国内正处于起步阶段。 现代城市排水管网已经构成了规模巨大两复杂的管线网络系统,每个城市都 积累了一大批排水管网设计、施工、竣工的图件和表册资料。长期以来,各城市 的排水规划管理部门都沿用人工方式来管理这些资料。随着国民经济的飞速发 展,这种人工管理模式很难满足实际需要。为提高对城市排水系统在规划、技术 设计、工程施工过程中的动态控制,保证排水系统的规曳l j 实施在技术上、经济和 环境效益上,始终处于优化状态:为便于工程报建审批部门随时了解、掌握全市 排水系统规划和实施过程的信息,对排水规划的调整及时作出正确决策,保证规 划的连续性、整体性。在城市规划主管部门和: 程报建审批部门,有必要建立“城 市排水系统规划和实施过程的计算机辅助管理系统”。 “借助g i s 系统的城市排水管网规划及管理项目”的开发研究就是针对这 课题进行的,其意义主要体现在以下几个方面:用计算机存储管线地理信息大 大缩小了存储空问。大大提高了查询检索速度。利用计算机查询某一区域、某 - 地点或某种特征的锖线信息仅需几分钟,这是人工查找难以比拟的。提高了 管理水平。计算机查询叮以查阅局部地区管线的各种细节,又可浏览区域管线的 宏观分布:眺可研究单种情况,又可了解各种管线整体分稚n 关系;既可用以指导 :i :程施工,3 l 百 - 用来做新区规划或管线设计,使管理工作得心应手。可实现动 态更新。新区旖工的信息,局部竣工信息均可随时添入系统,以便更新原有资料, 使系统保持较好的现势性。由于使用了计算机管理,管理信息便于传输,适于 一次建设,多家共享。使用网络分析工具来优化资料调配,做各种应急处理提 高了决策的科学性。 1 4 本项目的开发内容及应用实例 本课题是湖南大学土木工程学院与广东省某市城乡规划处的一个合作项目。 试图应用本项目的开发成果首先建立起镇安片区排水工程规划及管理的信息系 统,尔后逐步推广到全市,最终达到以下目的:提高规划决策的科学性;实 现信息资料的统一动态管理,保证规划各时序建设连续性:城市总体规划修编 协调性;施工报建审批工作的可操作性。总而言之,提高科学管理水平,提高 工作效率。 项目内容包括:通过数据、资料的采集和转换,建立起该市的排水系统图形 数据库和属性数据库,并在此基础上,通过g i s 技术对这些数据进行有效的管理。 根据实际情况,图形资料主要选用a u t o c a d 资料,在a u t o c a d 中垮管网和背 景路网合理分层,在建立了a u t o c a d 和g i s 图层之间的一一对应关系后通过 g i s 提供的数据类型转换功能将其转换成g i s 支持的凰形数据格式,并将管网图 数据处理成具有拓扑关系的网络文件以模拟实际管网:属性数据的录入则放到了 图形录入工作以后,这样可以对照着图形录入,既直观又迅速。 应用到镇安片区排水工程规划及管理信息系统中,其具体开发内容如下: ( 1 ) 建立“城市排水系统计算桃辅助管理数据库”: 分流制区域内的污水管渠数据库。包括:管段服务面积、编号、流量、 流速、管径( 渠断面尺寸) ,充满度、底坡、长度埋深情况,以及比流量、并 位等情况; 分流制区域内的雨水管渠数据库。包括:管段服务面积、编号、流量、 管径( 渠断面尺寸) ,底坡、长度、埋深、流速,以及雨量因素、集水时间、径 流系数、井位等情况; 分流制区域内原有管渠的数据库。包括管径( 渠断面尺寸) ,底坡、长度、 埋深、平面位胃、并位等; 原有合流制管渠的数据库。包括:管径、渠断面尺寸、底坡、长度、埋 深、平面位霞、标高、井位等。 ( 2 ) 建立“排水系统资料查询系统”; 要求可提供两种查询方式:区域代码查询;点击地图查询。 ( 3 ) 建立“排水系统的修改和调整计算机工作程序”; 该程序可解决在排水规划实施过程中:如排水系统的某一局部有变化,可以 迅速对原有系统进行修改和调整、自动进行水力计算和技术经济比较优化,对是 否允许变化给出判断结论并形成新的成果。 ( 4 ) 建立“排水系统成果输出系统”; 该输出系统既可完成个人区域的排水系统图纸及其相应信息打印,又可完成 多个区域排水系统及其相应信息打印,按照用户选定的多个区域进行自动拼图, 形成大区域的排水系统图纸及其相应信息; ( 5 ) 建立“城市排水系统开放性数据库”。 该数据库便于在已有排水系统信息基础上补充新的信息和图纸。 第二章c p p m gis 开发平台及开发工具介绍 城市排水管网规划及管理g i s 系统c p p m - g i s ( c i t yp i p e n e tp l a na n d m a n a g e m e n tu n d e rg i s ) 是利用b l a p l n f o 的二次开发工具m a p b a s i c 和v b 语言将 m a p l n f o 地图窗1 2 1 集成到v b 程序中而开发出来的应用程序,这种开发方式也称 为跨平台集成地图开发。 c p p m g i s 系统主界面如图2 1 所示。 图2 1c p 删g i s 主界面 2 1 c p p m g i s 软件环境 g i s 平台:m a p i n f op r o f e s s i o n a l6 0 数据库:m i c r o s o f ta c c e s s9 7 操作系统:w i n d o w s 9 8 2 0 0 0 n t x p 辅助工具:a u t o c a d 2 0 0 0 开发工具:v b 、m a p b a s i c 2 2 m a p i n f o 概述 m a p l n f o 是美国m a p l n f o 公司的产品。m a p i n f op r o f e s s i o n a l 是近两年来推 出的主流地理信息系统产品,它吸取了传统g i s 系统的精华,并借助于计算机技 术的发展,及时地将g i s 的概念从大中型计算机的专用工作站引入到普通p c 机 上,开创了一种崭新的地理信息系统模式,即桌面地理信息系统。m a p l n f o 的推 出吸引了越来越多的用户【4 l 。该产品自9 0 年代初进入我国后,在各行各业得到 普遍的应用,并收到良好的应用效果。 m a p l n f o 的主要特点有: m a p i n f o = m a p p i n g + i n f o r m a t i o n : 提供数据、思维可视化的决策支持方式: 支持c l i e n t s e r v e r 体系结构及无缝图层: 直接读写o d b c 数据库: 轻松建立数据与地图的关联; 提供m a p b a s i c 二次开发工具,方便定制用户界面,增添新功能; 功能完备的s q l 查询功能,支持地理表达式; 以地理方式实现o r a c l e 、s y b a s e 、i n f o r m i x 等多种数据库数据的空问存 储与访问; 一 具有o l e 嵌入功能,能将图层拖放进其它应用程序; 可在w i n d o w s 9 5 、w i n d o w sn t 及0 s 2 、w i n d o w s3 x1 6 位仿真模式下运 行。 m a p l n f op r o f e s s i o n a l 是第个能够在w i n d o w s 9 5 上运行的真3 2 位工业标 准桌面地图信息系统,实现c 1 i e n t s e r v e r 计算环境下与远程数据库的智能化共 享与联接”j ,成为桌面地图信息系统的一个标准。 2 3 跨平台集成地图开发介绍 2 3 1 集成地图概念 为编写一个集成地图应用软件,可以用几种不同语言来编写,c p p m g i s 是 以v i s u a lb a s i c 语言编写的。在集成地图应用程序中,要执行一条在后台启动 m a p l n f o 的语句,例如,可以通过调用c r e a t e o b j e c t 0 函数来启动m a p i n f o 。则 m a p i n f o 会在后台启动,并不显示快速启动屏幕窗口。 然后,程序通过构造代表m a p b a s i c 语句的字符串,用o l e 自动化( 或d d e ) 发送这些字符串给m a p i n f o 的方式来操作m a p i n f o 。m a p i n f o 执行这些语句时, 就像把这些语句输进了m a p b a s i c 窗口一样。 在m a p b a s i c 编程环境中,要打开一个地图窗口,可用m a p b a s i c 的“m a pf r o m ” 语句,似在集成地图程序叶,还要使用另外的语句( 例如,s e tn e x td o c u m e n t 盼r n 1 1 ) ,使这个地图霸变成为该应用软件的个子窗【i这个过程叫做“再 生( r e p a r e n t ) ”该窗可以再生地图窗口、浏览窗口、统计窗口、前j 局窗口 和图例窗f 1 6 1 1 ”。图2 2 显示了一个集成地图应用程序的主要组成部分【8 1 。 对j 二某。璺应用软件,叮以不必编写m a p b a s i c 程序。但是,如果已经写了一些 7 m a p b a s i c 程序,可以把这些已有的m a p b a s i c 代码作为集成地图解决方案的一部 分继续使用。 ( v 耖i s u 舳a l 脯b a s i 序c ) 卜译() l n m a p l n f o p r o f e s s i o n a o 互习 图2 2m a p l n f o 集成地图程序的主要构成 2 3 2 集成地图技术要求 2 3 2 1 系统要求 ( 1 ) 集成地图功能需要在w i n d o w s 操作系统中才能实现; ( 2 ) 集成地图需要m a p l n f 0 4 0 或者更新的版本。可以采用m a p l n f o 的完整 版,也可以采用m a p i n f o 的运行版; ( 3 ) 用户的计算机必须有足以同时运行应用程序和m a p l n f o 的内存和系统资 源; ( 4 ) 客户程序( 例如v b ) 必须能够充当一个o l e 自动化控制器或者一个d d e 客户。o l e 自动化是首先推荐的,因为它比d d e 更快、更可靠,还提供比d d e 更 好的错误报告,如果使用d b e 而不用o l e ,就不能获得运行时的错误代码; ( 5 ) 客户程序必须能够建立一个用户界面接口,客户应用程序还必须能够检 测这些接口窗口的句柄( h w n d 值) 。 例如,在v i s u a lb a s i c 中,可以把一个p i c t u r e b o x 控件放到窗体,当向 m a p l n f o 发送一条命令,让m a p i n f o 在这个p i c t u r e b o x 内建立一幅地图时,必 须制定这个p i c t u r e b o x 的h w n d 值。 2 ,3 2 2 其它技术说明 ( i ) 为了开发一个集成地图应用软件,必须用除m a p b a s i c 之外的语言编写 一个应用程序( 通常称之为客户程序) ,开发语言可以用各种通用的了i i = 发产品, 例如c c + + ,v is u a lb a s i c ,p o w e r b u i l d e r 或d e l p h i 等等: ( 2 ) 集成地图使用o l e ( j 动化,但不使用o i ,e 嵌入。当把某个m a p l n f o 的地 图窗口集成进应朋程序时,h i 要嵌入它,要用通过给m a p l n f o 发送一系列的字符 串命令的方式“再生”这个窗口,最终结果是:m a p l n f o 窗口作勾应用程序的子 窗口出现在j l l ,。t 面前; ( 3 ) 集成地图本身并不涉及v b x 控件或o c x 控件,虽然m a p l n f o 软件也包含 了某些d l l s ,但是不要直接调用那些d l l s ,那些d l l s 是m a p l n f o 内部调用的。 2 3 3 集成地图深入编程 在此讨论如何把m a p l n f o 的地图功能集成到v i s u a lb a s i c 应用程序中。 2 3 3 i 启动m a p i n f o 要启动一个m a p l n f o 引用,需调用v i s u a lb a s i c 的c r e a t e o b j e c t ( ) 函数, 并把其返回值赋给v i s u a lb a s i c 的一个o b j e c t 变量,这个o b j e c t 变量需为全 局变量,否则,当退出局部过程时这个m a p l n f o 对象会被释放。例如,如果把 o b j e c t 变量命名为 y a p i n f o ”,那么以下语句就能启动l d a p i n f o : s e tm a p i n f o = c r e a t e o b j e c t ( “m a p i n f o h p p l i c a t i o n ”) c r e a t e o b j e c t ( ) 和g e t o b j e c t0 函数都是用o l e 自动化连接m a p l n f o ,在3 2 位的 w i n d o w s 操作系统中,可以同时运行多个m a p i n f o 引用1 9 。 2 3 3 2 发送命令到m a p i n f o 启动m a p i n f o 后,要构造代表m a p b a s i c 语句的字符串。例如,如果想要 m a p i n f o 执行一个m a p b a s i c 的o p e nt a b l e 语句,就要构造以下字符串: m s g = “o p e nt a b l e “r o a d s t a b ”“i n t e r a c t i v e ” 如果用o l e 自动化连接m a p i n f o ,就要用d o 方法给m a p i n f o 发送字符串。 例如:m a p i n f o d om s g 当使用d o 方法时,m a p i n f o 以命令的方式执行字符串,就好像把这个命令 直接打进m a p b a s i c 窗口一样。 2 3 3 3 获取返回值 要获取一个m a p b a s i c 表达式的值,需要构造一个表达式。例如,如果要检 测m a p b a s i c 函数w i n d o w s i d ( o ) 调用后的返回值,可在v i s u a lb a s i c 内构造 如下字符串: m s g = “w i n d o w s i d ( 0 ) ” 当用e v a l 方法时,m a p i n f o 把这个字符串解释为一个m a p b a s i c 表达式,确 定该表达式的值并以一个字符串的形式返回这个值。 d i mr e s u l ta ss t r i n g r e s u l t = m a p i n f o e v a l “w i n d o w s l d ( o ) ” 2 3 3 4 再生m a p l n f o 窗口 启动m a p l n f o 之后,可使用m a p b a s i c 语句s e ta p p l i c a t i o nw i n d o w 柬让 m a p i n f o 的对话框和错误信息窗口从属于客户程序。下面的程序代码为再生 m a p i n f o 地图窗口例子,其中的“f o r 心l a m e ”是一个v b 窗体名字。 m s g _ “s e ta p p l i c a t i o nw i n d o w ”f o r m n a m e h w n d m a p i n f o d om s g 如果想在v i s u a lb a s i c 程序中集成地图窗口,可在再生了m a p l n f o 地图窗 口后给m a p i n f o 发送一条s e tn e x td o c u m e n t 语句,例如: m s g = “s e tn e x td o c u m e n tp a r e n t ”m a p f r a m e h w n d “s t y l e1 ” m a p i n f o d o m s g m s g = “m a pf r o mr o a d s ” m a p l n f o d om s g 其中的s e tn e x td o c u m e n t 允许“再生”窗口,在s e tn e x to o c u m e nl 语句 内要指定一个控件的h v n d ( 句柄) ,以后的程序中,使用m a p ,g r a p ,b r o w s e ,l a y o u t 或c r e a t e l e g e n d 语句建立一个窗口时,新创建的窗口都是再生的而且都是把客 户程序作为其父窗口。 2 3 3 5 再生图例窗口及其它特殊窗口 m a p i n f o 有几种非模式的窗口,包括信息窗口、标尺窗口、信息窗 】和统计 窗口。要再生一个这些特殊的“浮动”窗口,就要用m a p b a s i c 的s e t w i n d o w p a r e n t 语句。例如,如下语句再生信息窗口: m a p l n f o d o “s e tw i n d o wi n f op a r e n t ”f i n d z i p f o r m h w n d 图例窗口是一个特殊情况,通常,m a p l n l o 用户界面中只有一个图例窗 1 ,正如 只有一个信息窗口一样,但是,m a p b a s i c 语言包括了一条c r e a t el e g e n d 语句, 所以可以创建另外的图例窗口。要再生m a p l n f o 的标准图例窗口,可以使用 m a p b a s i c 的s e tw i n d o wl e g e n dp a r e n t 语句。要建立一个自定义的图例窗口, 可用m a p b a s i c 的s e tn e x td o c u m e n t 语句,然后用m a p b a s i c 的c r e a t ei e g e n d 语句。 2 336 缩放地图窗口 j 户是否能缩放地图窗口,取决于如何设置应用程序。如果把一个地隆1 窗口 放进r - 个v b 图片框控件中,它就不能被缩放了。但是,用一个m d i 界面1 4 7 一 个地图窗口后,就允许j = j 户缩放这个窗【1 了。 10 2 3 ,3 7 集成m a p l n f o 的工具条按钮 在客户程序中,不能直接使用m a p i n f o 的工具条,如果要在客户程序中使用 m a p i n f o 的工具条,必须用所使用的语言来重新创建按钮。以v b 为例如果想 要让一个v b 工具条按钮仿真一个标准的m a p l n f o 按钮,就要使用m a p i n f o 的 r u n m e n u c o m m a n d 方法,这个方法与m a p b a s i c 的r u nm e n uc o m m a n d 语句有相同 的效果。例如,在v b 中,要使一个按钮具有m a p l n f o 的漫游工具那样的功能, 需要使用如下语句: m a p l n f o r u n m e n u c o m m a n d1 7 0 2 当用户单击这个按钮时,程序就调用m a p l n f o 的r u n m e n u c o r m m a n d 方法,将 工具号1 7 0 2 ( m a p i n f o 的漫游工具) 激活。作为调用的结果,m a p i n f o 的漫游工 具变成了活化工具。1 7 0 2 表示m a p i n f o 的漫游工具。它是在标准定义文件 m e n u d e f 中定义的,其相对应的标识码为m _ t o o l s _ r e c e n t e r 。下面的语句例子 与上面那个例子具有相同的结果: m a p l n f o r u n m e n u c o m a n dm _ t o o l sr e c e n t e r 使用标识符可以增加应用程序的可读性。但是,如果打算把标识码直接用于v b 程序代码中,就必须使程序包含一个相应的定义头文件:如果使用的使v b ,头 文件是m a p b a s i c b a s ;如果用的是c 语言,头文件是m a p b a s i c h 。表2 1 列出 了部分m a p l n f o 标准工具按钮的i d 号和标识码。 表2 1 部分m a p l n f o 标准工具按钮的i d 号和标识码 i l 具按钮名称i d 号标识码 s e l e c t1 7 0 1 m _ t o o l s _ s e l e c t o r z o o mi n1 7 0 5 m _ t o o l s e x p a n d z o o mo u t1 7 0 6 m _ t o o l s _ s h r i n k i n f o1 7 0 7 m _ t o o l s p n t j u e r y l a b e l1 7 0 8 m _ t o o l s l a b e l e r l i n e1 7 1 2mt 0 0 l sl i n e t e x t1 7 0 9mt o o l st e x t 2 3 3 8 自定义m a p in f o 的快捷菜单 在集成地图程序中需要重新定义m a p l n f o 的快捷菜单( 在地图窗口中单击鼠 标右键弹出的菜单) 。要从m a p i n f o 快捷菜单中删除一条或多条菜单,可用 m a p b a s i c 的a l t e rm e n u r e m o v e 语句,或者用c r e a t em e n u 语句重新定义整个 菜单,要在m a p l n f o 快捷菜单上增加自定义的菜单项,就要用m a p b a s i c 的a l t e r m e n u a d d 语句,并要用c a l l i n go l e 或c a l l i n gd d e 方法。要删除整个快捷菜 单,可使用m a p b a s i c 的c r e a t em e n u 语句重新定义这个菜单,并用控制码“( 一” 作为这个新菜单的定义。例如,下面的语句就删除了地图窗口中的快捷菜单: m a p l n f o d o “c r e a t em e n u ” “m a p p e r s h o r t c u t ” “i d1 7a s ” “( 一” 2 3 。3 9 打印集成地图窗口 m a p b a s i c 的p r i n t w i n 语句可以打印一个m a p l n f o 窗口,也可以用这条语句 来打开集成地图窗口,如下面的例子: p r i v a t es u bm e n u p r i n t m a pc l i c k 0 m a p i n f o d o p r i n t w i n e n ds u b 2 3 3 ,1 0 检测运行时的错误 当客户程序发送一个m a p i n f o 命令串时,这个命令可能失败。例如,当发送 “m a p f r o mr o a d s ”命令时,如果表r o a d s 不存在,命令操作将失败,m a p l n f o 就产生一个错误码。要捕捉m a p n f o 妁错误需要设置错误捕捉陷井,就像处理任 何其它o l e 自动化操作过程那样。在v b 的应用开发中,通常使用o ne r r o r 语句 进行错误捕捉。要确定在m a p l n f o 中出现错误的类型,需查看m a p l n f o o l e 自动 化属性的l a s t e r r o r c o d e 和l a s t e r r o r m e s s a g e 。 2 3 3 1 1 结束m a p l n f o 和v b 程序 如果通过调用v b 的c r e a t e o b j e c t ( ) 函数建立了一个新的m a p l n f o 引用。 在释放这个o b j e c t 对象变量时,m a p l n f o 会自动退出。如果这个对象变量是一 个局部变量,当退出局部过程时,将自动结束m a p n f o :但如果这个对象变量是 个全局变量,则需给它赋一个空值( n o t h i n g ) 来结束m a p l n f o :s e t m a p l n f o = n o t h i n g 。如果是用d d e 与m a p l n f o 连接,可以甩l i n k e x e c u t e 方法发 送一个“e n dm a p l n f o ”命令字符串来关掉m a p l n f o 。 2 3 31 2 利用回调从m a p ln f o 获取信息 通过对集成地图程序的设置,可以使m a p i n f 能自动地向客户程序发送信 息。例如,通过程序设置,当m a p 窗口发生改变时,m a p n f o 将调用客户程序来 与所改变地窗r ii d 号进行通信。这种类型地标忐信息,即事件导致m a p l n f o 调 12 用客户程序,叫做“回调”( c a l l b a c k ) u 0 1 1 i i l 。 一般,在下面的情形下,回调允许m a p l n f o 向客户程序发送信息:当用户 通过自定义工具与m a p i n f o 窗口交! i 时。例如,当用户在一个地图窗口内按下并 拖动鼠标绘制一条直线时,m a p i n f o 会调用客户程序来与用户选取的x ,y 坐标 进行通信;当用户选取一个菜单命令时。例如,当在应用程序中自定义好 m a p i n f o 的快捷菜单后,用户在快捷菜单中选取一个菜单命令后,m a p i n f o 便调 用客户程序把该菜单事件通知给程序:地图窗口改变时。当用户改变地图窗口 时,例如增加或去掉地图层或平整地图刚,m a p i n f o 就会将改变的地图窗口i d 号发送给客户程序。m a p l n f o 中的状态栏改变时。在集成地图应用程序中, m a p 【n f 0 的状态栏不会自动显示。当需要在客户程序中模拟m a p i n f o 的状态栏时, 磐须对程序进行设置,以便当状态栏文本改变时m a p in f o 会通知客户程序。 一 当运用方法来处理自定义按钮或菜单命令时,m a p f n f o 发送给自定义方法的 是用逗号隔开的字符串。然后在方法中对这些字符串进行解析。这些字符串的具 体格式各异,取决于用户使用不同的菜币命令或按钮。一般地,m a p i n f o 传送给 o l e 方法地字符串包括8 个元素,分别用逗号隔丌。例如,m a p i n f o 发送地的字 符串可能像这样: “m i :一7 3 5 5 4 6 ,4 2 11 2 ,f ,f 一7 2 8 6 7 7 0 2 ,4 3 0 2 5 ,2 0 2 ,” 当编写m a p b a s i c 应用程序时,可以调用m a p b a s ic 事件处理过程而不调用 o i ,f 方法来自定义菜单命令和按钮。在这个事件处理过程中,可以调用 c o m m a n d i n f o 来检测与最近事件有关的各种信息。例如,如果一个m a p b a s i c 过 程充当一个自定义绘图工具按钮的事件处理过程,下面的函数调用就能检测用户 用这个绘图工具时是否一直保持按下了s h i f t 键: l ,o g v a r i a b l e = c o m m a n d n f o ( c m d i n f ? 0 一s h i f t ) 代码c m d _ in f o s h lf r 是在m a p b a s i c 头文件m a p b a s ic d e f 中定义的。表2 2 列 出了与c o m m a n d l n f 0 有关的定义。 当创建一个用“c a l li n go l 。e 方法”的自定义菜单命令或按钮时,m a p i n f o 就返回含有用逗号分隔的8 个c o r a m a n d n f o ( ) 返回值构成的字符串。该字符串 的前缀统。为“mj :”,因此o l e 服务器能够判别出该方法调用的m a l ,nr 0 。 n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第七单元21 古诗词三首山居秋暝说课稿-2024-2025学年五年级上册语文统编版
- 别墅保洁合同
- 北京市非居民其他垃圾清运合同
- 肝胆管癌外科治疗方案
- 旅游活动的分类依据
- 广东省茂名市信宜市2024-2025学年五年级上册期中考试语文试卷(无答案)
- 17 A光的折射 基础版2025新课改-高中物理-选修第1册(21讲)
- 河南省郑州市新密市2024-2025学年一年级(上)期中语文试卷(含答案)
- 激光比长仪相关行业投资规划报告范本
- 社交电商相关行业投资方案2
- 有限空间监理实施细则
- 二手房屋买卖物品交接清单
- 家畜育种新技术
- 小学生汽车发展史新能源课件
- 王贵启-玉米田杂草发生发展及除草剂优解-合肥0728
- 幼儿园幼小衔接实施方案(修改)
- 2023北京海淀区八上初二期末数学试卷及答案
- 浙江重症医学专科护士理论考核试卷与答案
- 沟槽土方开挖工程专项施工方案范文
- 产品质量风险辨识与控制清单范例
- 电力电缆试验
评论
0/150
提交评论