企业培训电网系统架构设计培训_第1页
企业培训电网系统架构设计培训_第2页
企业培训电网系统架构设计培训_第3页
企业培训电网系统架构设计培训_第4页
企业培训电网系统架构设计培训_第5页
已阅读5页,还剩112页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

{企业通用培训}电网系统架构设计培训1.3.1业务架构41.3.2应用架构41.3.3数据架构51.3.4技术架构51.3.5物理架构51.3.6安全架构51.3.7应用集成52.1.1平台支撑应用94.1.1数据层234.1.2数据访问层244.1.3应用逻辑层244.1.4应用服务层244.1.5表现层244.2.2组件化设计264.2.3模型驱动264.2.5基于缓存技术的数据集中部署274.3.1与业务系统松耦合305.2.2理论上估算网络带宽365.2.3带宽分析396.1.1物理安全406.2.2安全审计426.2.3数据修改审计436.2.4并发编辑和数据权限控制446.2.5性能保障45化的电网拓扑模型;本设计方案所采用的电网拓扑模型基于Oracle关系数据表存储图形和拓扑的方并发编辑、多版本长事务等特性经过特别优化。在现有的基础之上,本方案进一步扩展到全省大集中的象数据库技术、多进程通信技术、多机集群技术于栅格/切片地图的本地存储等技术,优化网络带宽,降低网络和服务器的压力。存、极大的减轻了Oracle服务器的经具备全省输、变、配大集中的能力。本设计方案提供基于Oracle实现电网拓扑和图形的版本化、长事务管理的功能。运行层和设计层叠加的方式的基础上,加入了面向单个设备记录的完全的版本化管理功能,记录电网随工程设计、施工和投产过程的渐进的演化过程。满足功能需求和规范要求。架构如下图所示:够满足总部、网省、地市不同层次对电网构的设计提供依据。应用架构由电网资源图形管理、空间信息服务、典型应用框架、GIS高级应用、平台支撑应用五大部分组成。电网资源图形管理用于维护电网图形资源的空间信息、经济、高效运行提供辅助决策;平台支撑应用为电网资源图形管理、空间信息服务、同步维护,保证基础数据一致性。行多层结构体系设计。并通过一体化平台应用集成实现与各类业务应用的横向集成,为各类业务应用提供电网空间图形及分析服务。同时,通过一体化平台的数据中心和数据交换,实现总部与网省的纵向贯通技术设计。物理架构是为上层的应用提供软硬件支撑的平台,其设计的内容主要包括软件平安全架构指提供系统软硬件方面整体安全性的所有服务和技术工具的总和。依据应用环境层次从身份管理、身份认证、访问控制、安全审计、数据保护等方面进行设计,具备完善的权限控制机制以保证平台的高度安全性。台。的企业服务总线调用其它应用系统的服务,以实现数据和功能的交互。理、空间信息服务、典型应用框架、高级应用及平台支撑应用五部分,其体系架构如下图所示。化数据库包括系统管理数据、电网资源的属性、设备档案、图形、拓扑数据存储于中。为了实现快速的基础地理信息发布,Smallworld中的背景地图经过切片渲染后,以图像文件的形式存储于文件服务器中。用户进行大量的复杂的人机界面交互(比如人工绘图和操作/拓扑编辑/自动生成图形完成复杂的编辑和建模的界面操作。输变配低通一体化建模,以图绘制输配低压通信线路和变配电站内部一次接线图,维护全网贯通的拓扑模图自动生成和管理是从基础拓扑模型自动生成和管理各种电气专题图,包括全网一次接线图、线路相位图、同杆并架图、工作票简图等,以及污区图、特殊区域图、雷电分布图等专题图的数据导入、编辑和输出等。3)空间信息服务和图形化展现,为各类业务应用提供电网图形和分析服务的企业级电网空间信息服务,各业务应用可以通过ESB(企业服务总线)调用电网空间信息服务。提供的服务包括:基础服务、图形浏览服务、查询定位服务、矢量图形服务、电网专题图服务、空间分析服务、电网拓扑分析服务、网片地图服务。务引擎提供的。这些服务引擎包括模型服务引擎、图形服务引擎、地引擎和电网高级分析服务引擎。服务引擎在满足高可靠性和高可用性时快速、秒级)的访问能力。4)典型应用框架GIS应用。典型应用框架可以嵌入各业务应用系统,并可以通过业务系统功能与典型应用框架进行交互;典型应用框架可以通过门户启动。典型应用框架应用功能包括:电网资源查询定位、专题图查询、空间分析、电网拓扑分析、图形输出等功能。6)平台支撑应用平台支撑应用包括对平台的模型关系管理、图元符号维护、图形显示样式管理、平台权限管理、平台日志管理及瓦片地图管理等平台支持功能,为电网资源模型和实时信息的挂接,并获得实时和历史数据进行电网分析服务。平台支撑应用包括对平台的模型关系管理、图元符号维护、图形显示样式管理、平台权限管理、平台日志管理及瓦片地图管理等平台支持功能,为电网资据表的元数据描述及关系信息。元符号管理功能对各种类图形提供图元符号管理,提供对生产设备、营销资源、通信资源、应急资源等各类电网资源的图元符号的管理功能。注样式、着色类型进行配置,电网资源图形维护、空间信息服务、典显示配置信息进行图形符号化显示。各种图形有各自独立的显示方案可以对生产、营销及基础地理对象等各类图形资源的显示样式进行配置。权限管理:权限管理对平台功能是否可用进行控制,有权限的用户可以操作、查询的数据种类及数据范围进行控制。功能,包括日志的记录设置、自动维护、查询、删除、导出等功能。行组织和管理。维护功能。架,如下图所示。上图中橙色部分是电网GIS应用服务引端,提供基础服务、矢量图形服务、栅格图形服务、图形浏览范围、查询定位服务、专题图服务、空间分析服务、电网拓扑服务和切片地图服务。(RichInternetApplication,富互联网应用)技术的控件,提供集成化的画面显示、设备查询、电网分析等典型应用场景。发布的空间信息服务。务主要供电网资源图形管理客户端调用,用来维护电网的资源模型。型数据。管理客户端,完成对输电线路、变配电站、配电线路等版本化的建模、图形维护和资模型对象,构建内存中的空间索引和拓扑关系索引,以满足大量用户快速访问和电网分析的需要。形式的电网模型和空间信息服务。擎的功能包括地理图、接线图、相序图等图形的导入、显示、打印和导出服务,涵盖础地理信息的叠加。的形式存在,界面功能最丰富、交互速度快,能够显示电图形,适合生产、营销等需要大量图形交互的系管理平台能够完全解耦,灵活性最大,比较适合与在系统之间进行图形文件的导入、导出,例如为外部系统提供变电站主接线图、同杆共架图、相量图形服务。可靠性计算等成熟的电力专业算法和程序移植到电网分析服务引擎中,并且通过服务的形式支撑营销、输电监测等系统的各项业务应用。动态分合运行位置,计算输变电网络的动态拓扑连接关系,以支持图形上的动态着色、电网拓扑路径追踪、操作票中的开关操作顺序校核等应用服务功能。停电方案计算等。电网高级分析服务引擎采用了多进程的架构实现较高的计算性能,如下图所示。容器中。当需要调用高级分析服务时,业务逻辑代码调用各个分析服务的Java对象,电网资源、图形和资产的图形化、流程化的管理和维护。这部分软市局开发和应用多年的成熟成果,并结合全省大集中、输配变低通维护设备台帐,自动统计生成各种台帐报表,实现抛掉纸质资料、实现单轨资料管理。题图,维护工作量大、更新不及时、准确率没有保证。而在电网资源管理系统中,只要地理图中的线路拓扑模型正确维护,各种电气专题图就会自动更新,大大提高工作效率、减少资料错误带来的安全隐患。型,在竣工时,只要少量操作就能够更新运行电网的模型,使技术手段能够支撑管理手段保证电网模型的及时更新。背景切片文件。服务层为模型服务引擎,以实现电网模型的版本化编辑和存储。由于模型维护的公共组件层实现内存对象的持久化、版本管理、基础GIS平台拓扑编辑、表单定制、流程驱动、图形和图符显示、画面管理、权限和用户管理、打印等基础功能。体化的建模工具,来建立输配低压通信线路及变电设备的电网资源模型,线路和变电站内外部的拓扑关系,图形化方式处理改造和新建电网和用户工程。输变电一体化电网建模主要包括以下三个方面:置、设备命名、管理信息和电气拓扑关系,并提供拓扑正确性的括图形位置、属性和电气拓扑关系,并提供拓扑正确性的检查和修复工具。以批量录入的方式对设备的台帐进行管理,以卡片的方式对管理维护电气专题图,并提供电气专题图的自动生成。从管理和编辑地理专题图,提供污区图、雷电分布图等的数分析。该模块实现在基建、网改、业扩等工程的驱动下,电网模型的命名、拓扑、图形、档案和量测等数据经过设计、施工、投产等系统的流程实现更新和维护。统计等初步设计资料。在竣工验收环节,在施工版本中完成竣工资料的录入,并根据施工版本生成单线在工程投产或者营销业扩接电时,执行“投产”操作,把施到电网最新的版本中,相应的单线图和系统图也同步更新,实现全网的模型、拓扑和图形的原子更新,保证电网模型的一致性。Oracle数据库是-GIS一体化平台的公共数据库,存储系统管理数据,电网资源、设备档案、图形、拓扑、线路设计和施工属性等数据,具体包括以下组成部分:系统管理数据:包括GIS公用的模型管理、据。达、图形标注、图形拓扑等。输配电图形支持版本和长事务。的线路设计应用,在初步设计、设计、施工和验收等阶段储;为了加速背景地图的发布,采用切片技术,将常用的背景地图和卫星影客户端进行拼接、合成背景地图。设备照片和图纸等文件形式的资料,通过图档服务器进行统一管理,以方便查询和管理。对于站内一次接线图和系统图、单线图等电气专题图,直接使用独立的平面直角台中的各类数据提供统一的访问接口;应用逻辑层是在数据访问层的基础之上建立的各类功能组件,实现图形管理的各类功能;应用服务层将应用逻辑组件封装为服务供理数据、电网图形数据、电网拓扑数据、资源属性数据通过数据层进行统一存储管理。外部交换数据构成。电网图形数据、电网拓扑数据、属性数据、基础地理数据通过电网GIS平台的电网资源图形管理功能进行维护和管理。基础模式,以满足平台对数据源的收集和接入,为上层的应用服务提供信息源。数据访问层提供访问电网数据的接口,应用逻辑组件通过统一的数据访问接口维扑数据和属性数据;数据访问层同时提供服务代理,用于访问其他业务系统以服务方式对外发布的数据。4.1.3应用逻辑层连接的桥梁,在平台中起着至关重要的作用。它涵盖了图形渲染、图形编辑、电网模型维护、查询定位、统计分析和系统管理等各类功能,并且将这些功能封装为组件,其中的部分功能的实现可以通过企业服务总线调用其他业务系统功能实现。应用层的系统管理工具和电网图形资源管理应用可以直接调用这些逻辑组件实现各类应用功能。4.1.4应用服务层应用服务层提供各类电网空间信息展现和查询分析服务,主要包含图形浏览服务、专题图服务、查询定位服务、电网分析服务、空间分析服务和高级务通过封装逻辑组件实现,也可以调用其他业务系统的服务来实现务可以被界面层各类应用调用。4.1.5表现层架,这些应用调用逻辑层和服务层的逻辑组件或服务实现,也可的页面。和管理,形成系统运行所需的各类基础模型数据。电网资源图形管理主要由电网资源维护人员使用,主要完成电网资源的维护管理、电气图、专题图管理,以及电网异动管理、电网工程辅助设计以能应用。能充分利用客户端计算资源,实现性能要求较高的复杂应用场景。(RichInternetApplication,富互联网应用)技术,形象直观的提供电网图形浏览、查询定位和电网分析功能;此外可以直接查看电网图形关联的设备台帐信息和其关信息,实现图数互查等交互界面相对简单的应用场景。明确且稳定,功能独立,可以很容易地被支持相同规约的也十分便于整个系统的集成和维护。定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。这种具有中立的接口定义(没有强制绑定到特定的实现上)的特征称为服务之间的松耦合。松耦合的好处有两点,一另一点是,组成整个应用程序的每个服务的内部结构和实现逐渐地发生改变时,它能够继续存在。相关组件在一定的规约下组装后实现完整的业务功能。组件化的平台结构有利于平台功能的扩展,同时更大程度上提高业务功能实现的复用性。GIS平台在实现组件组装的过程中采用插件机制。电网GI是一个很小的内核,该内核实现了基于插件形式将功能组件集成到框架中的动态加载机制,平台将任何内核以外的功能组件看作是对平台内核的一种扩展实现,只要该组件符合平台的统一预定义接口,便可进行动态调用,以扩展应用框架的功能,从而实现整个平台的最大限度扩展,并具有高度的统一性和开放性。4.2.3模型驱动模型驱动的核心思想是通过深入分析特定领域的数据和应用等方面的共性特征,抽象提炼出一个领域信息系统的元模型,并依此自动或半自动化地构建整个系统。针对不同的应用领域,通过各种建模工具将具体企业的业务模型形成可执行模型,并基于通用平台的运行环境,自动生成相应的业务应用功能,从而能大幅度提升系统对业务需求变化的响应速度。在模型驱动理论中,平台本身不直接涉及特定的业务信息或业务过程,而是通过所建模型间接达到实现具体业务功能的目的。这种理论强调平台负责抽象的信息与过程处理,而特定的业务信息或业务过程对平台而言被视为了一种信息系统实施过程可被视为平台的一次“设计化”。系统运行时,读取模型数据,根据运行状态和模型数据设置功能组件满足业务需求。的应用程序还可以不依赖模型来实现特殊需求,并不强制要求模型驱动。连接关系。电网GIS平台通过统一设备分统一图元标准来实现电网图形一体化。和基础地理数据的类型,并统一这些类型的分类代码,从而保证设备的唯一性。统一设备模型包括电网图形资源的属性信息和连接关系,实现维护的一致性和方便性。各类电力设备间可以通过统一连接关系构成完整的电力拓扑网络,保证各类设备间的连通性。统一数据存储基于设备分类表示和设备模型,将各专业、各电压等级设备统一使用统一的图元标准渲染电网图形资源数据,用统一图形展现方等来实现全网设备的图形漫游、查询、统计和分析。式原则上是统一的,但是在数据模型和数据字典中,输电、配电、低压的杆塔还是对话,输电有一个杆,配电也有一个杆,通过外部约束关系把两个杆在逻辑上处理成一个杆。GIS平台管理的图形图像数据量大,用户很多是基层人员,数据集中部署对网络压力很大,而且有些用户网络带宽不能满足实时传输大量图形图像数据的要求,因此需要采用本地缓存技术减少网络传输的数据量,提高系统运行效率和可用性。GIS应用程序通过网络连接部署在服务器上的数据服务访问数据,数据服务根据应用程序的请求操作数据库中的数据,并可按照配置信息将部分数据缓存在本地。应用程序通过数据服务获取数据服务器上的数据后,也可以根据配置信息将需要的数据缓存在本地缓存中。数据缓存后,应用程序与数据服务的连接可以断开,应用问本地缓存数据进行图形的浏览和编辑。待编辑完成需要提交时或网络重新连通时本地缓存数据与服务器数据进行同步,保持缓存数据的与服务器同步。使用本端才需要与服务器通信,能够减少网络传输的数据量,降低系统对网络和服务器的要求。行,系统响应速度要优于通过网络访问数据库方式。(3)使系统可以离线运行。采用本地缓存后,客户端和服务器不要求持续连接,客户端编辑操作可以基于本地缓存完成。客户端需要将编辑结果提交到服务器时,才需要与服务器建立连接,将数据变更发送到服务器,并解决冲突。在数据集中部署在省公司的前提下,需要采用本地缓存的技术来优化和降低网络下,也能够流畅的运行编辑功能、显示和查看地图。进一步把本地缓存的技术扩展到典型应用框架、以及对矢量和栅格地图的缓存上。网络分析等服务,对于不同的用户,有不同的视运行位置发生变更时,系统进行版本化管理,能根据需要自动进行版本询设备变更数据,也可回溯出指定时间的电网状态,为电网运行、分析业务提供支撑和参考。行更新,使系统和现实世界一直保持着全方位的动态交换)和全面性(可以提供任何时和纵向的历史数据,对历史、当前和将来进行对比、分析、监测和预测预报,从而为规划系统、预测系统、决策支持系统和其他分析系统服务。扩展性和进一步为电网应用进行性能优化的空间,这是通常基于第三方工具例如特别是那些与电力运行有关的对象。通过提供一种用对象类和属性及他们之间的关系来表示电力系统资源的标准方法,用以实现不同独立开发的管理系统之间的集成。基示而访问公共数据和交换信息。模型技术,通过对象的唯一有效标识,系统间的模型、对象属性数据可以更好的实现交换。采用标准的电网数据交换格式来进行交换,电网拓扑数据、资源属数据中心和其它共享系统。架。票制图。繁、大量访问平台的设备数据。典型应用框架功能无法显示图形,其他业务功能继续使用。驱动都从该类进行派生。本类最重要的几个接口函数包括:1)返回数据源的表(图层)定义,GisTableDef*table(intnIndex);或者影像地图。//基类只定义界面和提供基本属性的操作//不同GIS数据源从此派生,实现表模式加载/查询/写回操作{public:virtual~GisWorkspace();//返回所属的factoryinttableCount();GisTableDef*table(intnIndex);话,//创建isInited()=false的GisTableDef);//每次数据库操作之前复位该错误信息,对于constCString&lastErrorString();//设置连接参数//用已经设置的连接参数打开//1.如果原来已经打开,先关闭,再重新打开//因此在refreshTableSchema()时,如果GisTableDef::isInited()返回true,就保留不动.//只填充增加的table和isInited()=false的table//返回true,如果成功virtualboolopen()=0;//取得/设置全局连接参数替换标志//参数://pFilter,IN,查询原始参数,(注意:字段名字未展开)//pStore,IN,存放结果集,由调用者分配,字段数目/偏移已经设置完毕//成功返回true,否则falsevirtualg::eErrqueryStore(GisQueryFilter*pFilter,GisTableStore*pStore)=0;//保存数据集合virtualg::eErrmitStore(GisTableStore*pStore)=0;//释放全部资源,调用者紧接者就会调用deletevirtualvoidclose()=0;//queryStore()只支持全部加载//不支持区域加载或者属性条件加载virtualboolisLoadAllQueryOnly()=0;//queryStore()是否支持区域范围查询//如果为true,能够支持随着显示范围动态加载,否则只能一次性加在virtualboolisSpatialQuerySupported()=0;//是否支持增量更新//语义修改virtualg::eErrallocId(GisTableDef*pTable,long&lNewOID)=0;//用于sderaster的绘制//painter[in]----绘制设备//rectPixel[in]----象素坐标范围,wrectWorld范围内对象最终需要绘制到painter的该范围内//wrectWorld[in]----世界坐标范围,该范围内对象被输出//pXfm[in]----为了坐标转换(内部Y方向)//刷新表定义,原来的表定义都释放,因此调用者必须小心处理//或者://因此所有对GisTableDef/GisTableStore的使用者都**绝对不可以**保留其指针,//或者//返回值:成功,返回true,否则false,错误信息在lastErrorString()//采用只创建,不释放的策略//派生类需要//1.如果GisTableDef::isInited()=false,试图重新加载该表//2.如果在数据源中有新的表,增加到//3.isInited()的GisTableDef表不动};g::eErrSWWorkspace::queryStore(GisQueryFilter*pFilter,GisTableStore*pStore){//1.判断当前连接是否有效{}//连接数据库CStringstrDatabase;ticsPutString(hdlHandle,(Char*)(LPCTSTR)strDatabase);ticsFlush(hdlHandle);{m_strLastError="指定的数据库不存在,请重新指定。";}//2.判断pFilter的有效性,if(pFilter==0||pStore->fieldCount()==0||(pFilter->isSpatialQuery()&&((GisSpatialFilter*)pFilter)->queryEntity()==0)){returng::eInvalidQueryParameter;}if(pFilter->isSpatialQuery()){boolbValidSpatial=false;GEntity*pQueryEnt=((GisSpatialFilter*)pFilter)->queryEntity();{//暂时使用矩形,为加快速度{//[52003]smallworld中取表结构时有效范围定为[0,0,0,0]if(!()){bValidSpatial=true;}}}if(!bValidSpatial){//无效的空间查询范围,没有查询的内容,直接返回returng::eOk;}}arPtVec[0]=;arPtVec[1]=;arPtVec[2]=;arPtVec[3]=;ticsPutFloats(hdlHandle,arPtVec,4);ticsFlush(hdlHandle);//第一个传送过来的如果不是错误信息,那么就应该是几何对象类型{m_strLastError="指定数据库尚未连接";returng::eInvalidQueryParameter;break;caseecTableNotExists:m_strLastError="指定数据表不存在";returng::eInvalidQueryParameter;break;m_strLastError="指定数据表中包含目前无法处理的几何字段类型";returng::eInvalidQueryParameter;break;caseftPoint:caseftSimplePoint:break;caseftChain:break;break;caseftArea:break;break;default:returng::eInvalidQueryParameter;;}//第二个传送过来的信号表示err_ok/err_table_eof,决定是否接收数据{//查询失败returng::eInvalidQueryParameter;}charinfobuf[1024*200];//属性记录集合Int32idbuf[1024];//2k的缓冲区用来处理ID记录集合应//建立几何对象数据类型和属性信息数据类型{pInfoStruct=pAcptFields;{}}char*pInfoPos;Int32*pIdfoPos;AcptResultres;//输出加载过程//读取记录{//测试一下只处理几何字段速度会又什么程度的改善memset((void*)infobuf,0,sizeof(infobuf));memset((void*)idbuf,0,sizeof(idbuf));res=acptReadObjectVector(pStream,typeInfo,infobfor(intj=0;j<nCount;j++){//装载记录数据GFields*pFields=pRow->fields();intnFldCount=pFields->fieldCounintnOffset=0;intnSize=0;for(inti=0;i<nFldCount;i++){GField*pFld=pFields->field(i);switch(pFld->fieldType()){caseGField::kSmallInteger:{//unset{}else{shortsValue=*((short*)(pInfoPos+pInfoEle->offset));}}break;caseGField::kInteger:{{}else{intnValue=*((int*)(pInfoPos+pInfoEle->offset));}}break;caseGField::kOID:{}break;caseGField::kDouble:{{}else{}}break;caseGField::kString:{{}else{//但是单独加载dxf_areas/dxf_lines都不会导致这个问题,出问题时都是dxf_areas引起的,//字段为line_styles。intnStrLen=pFld->length()-1;if(nStrLen>0){//一定是bit的字符串,需要转换成bit的short*pwChar=*((short**)(pInfoPos+pInfoEle->offset));{//shortwszChar[255];//memset((void*)wszChar,0,sizeof(wszChar));//memcpy((void*)wszChar,(void*)pwChar,sizeof(short)*nStrLen);QStringqstr;//((unsignedshort*)wszChar,nStrLen);//((unsignedshort*)pwChar,wcslen((wchar_t*)pwChar));//#else//#endifCStringstr(qstr);nStrLen=();}else{}}else{}}}break;caseGField::kDate:{//暂时不支持}break;{{casekGisFeaturePoint:{pRow->setInternalHasEntity(true);}break;{{{pRow->setInternalHasEntity(true);}}else{{pRow->setInternalHasEntity(true);}}}break;{{{pRow->setInternalHasEntity(true);}}else{{pRow->setInternalHasEntity(true);}}}break;}//endofswitch(featureType..}break;}//endofswitch(fieldType..{}{}}//endoffor(i..}//endoffor(j..res=acptFreeObjectVector(typeInfo,infobuf,nCount);{{}}//这里加上中止处理if(IsLongOperationAborted()){ticsPutUShort(hdlHandle,otCancel);ticsFlush(hdlHandle);}else{ticsFlush(hdlHandle);}//释放属性acpt类型和构造该类if(pAcptFields)delete[]pAcptFields;res=acptFreeType(tyreturng::eOk;}g::eErrSdeWorkspace::queryStore(GisQueryFilter*pFilter,GisTableStore*pStore){//1.判断当前连接是否有效{}//2.判断pFilter的有效性,if(pFilter==0||pStore->fieldCount()==0||(pFilter->isSpatialQuery()&&((GisSpatialFilter*)pFilter)->queryEntity()==0)){returng::eInvalidQueryParameter;}if(pFilter->isSpatialQuery()){boolbValidSpatial=false;GEntity*pQueryEnt=((GisSpatialFilter*)pFilter)->queryEntity();{//暂时使用矩形,为加快速度{if(!()){bValidSpatial=true;}}}if(!bValidSpatial){//无效的空间查询范围,没有查询的内容,直接返回returng::eOk;}}//动态创建的局部变量try{if(!getLayerCoordRef((long)hConn,p{throwCString("取得层的坐标参考失败");}lRC=SE_sql_construct_alloc(1,&sqlc);CheckSDEError(hConn,NULL,lRC,"SE_sql_construct_alloc");if(*szWhere){}intn;{}//4.空间查询条件if(pFilter->isSpatialQuery()&&!()){GisSpatialFilter*pSpFilter=(GisSpatialFilter*)pFilter;SE_FILTERFilter;switch(pSpFilter->spatialRel()){default:caseGisSpatialFilter::kEnvelopeIntersects:break;caseGisSpatialFilter::kContains:break;}lRC=SE_stream_set_spatial_constraints(hStream,pSpFilter->searchOrder()==GisSpatialFilter::kSpatialFirst?SE_SPATIAL_FIRST:SE_ATTRIBUTE_FIRST,FALSE,1,&Filter);}//5执行查询{{break;}//额外检查,确保entity&oid有效{}else{}}}catch(CStringstrError){m_strLastError=strError;}if(sqlc){delete[]sqlc->where;SE_sql_construct_free(sqlc);}if(paszCols){delete[]paszCols;}{}{}{}if(hStream){}{returng::eOk;}else{returng::eGisWorkspaceAccessError;//具体错误描述在GisWorkspace::lastErrorString()中}}1)合成空间查询条件,存储于GisSpatialFilter中{{returntrue;}{//优化,如果范围小于以前成功加载的范围,不加载//(-()*0.01,-()*0.01);(-()*0.01,-()*0.01);{returntrue;}}//(int),(int),(int)(()),(int)(()));//不指定空间关系,选择全部字段,因此字段的数目和次序与GisTable相同GisSpatialFilterfilter;//(GisSpatialFilter::kEnvelopeIntersects);(GisSpatialFilter::kContains);(GisSpatialFilter::kSpatialFirst);//使用GChain,[0][2]是对角线,query代码暂时先假定是rect//国网测试,发现mqpfilecreator似乎边界上的多边形获取不全,原因不知{(()*0.05,()*0.05);pChain->setPointAt(0,());pChain->setPointAt(1,GePoint2d(,));pChain->setPointAt(2,());pChain->setPointAt(3,GePoint2d(,));}pChain->setClosed();//闭合//需要进行坐标转换{}//从数据库坐标到地图坐标的变换if(pMat){//地图到数据库坐标的变换}(pChain,true/*所有权归filter*/);GisTableStore*pStore;g::eErreErr=m_pTableDef->query(&filter,pStore);if(eErr==g::eOk){if(!_loadStore(pStore,bIncrementalUpdate,pGisEntitiesMap,pbStop)){deletepStore;returnfalse;}deletepStore;//更新缓存的区域}else{//清除缓存的区域m_();}returntrue;}路名查询、地名查询、最短路径分析等基础地理分析服分析中心抽取数据。GIS平台提供输电、变电、配电设备台帐维护、拓扑维护和图形维护等基础数据要频繁、大量访问平台的设备数据。浙江公司与浙江省测绘与地理信息局已经达成数据共建共享战略合作协议,测绘与地理信息局为浙江公司提供基础地理信息数据,浙江公司为测绘与地理信息局提供电网数据,实现地理信息的双方共享。部分:本节3利用该坐标相邻的设备坐标信息近似实现大地2000到西安80的坐标转换,据库容量。存储容量的规划和现状如下表:(全省小比例尺的单个地市局的数据量取国网典(包括全省小比例尺和杭州大比例尺含扑和资源属资源相关的是考虑到现有的照片分辨率多根据规划采用水平扩展和垂直

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论