一种基于移动平台的三维虚拟地球的系统架构的制作方法

文档序号:13207114阅读:254来源:国知局
一种基于移动平台的三维虚拟地球的系统架构的制作方法

本发明涉及一种三维虚拟地球的系统架构,特别涉及一种基于移动平台的三维虚拟地球的系统架构,属于移动三维虚拟地球架构技术领域。



背景技术:

随着网络信息技术的发展,基于传统pc机的三维虚拟地球地理信息服务模式无法满足公众对地理信息服务快捷、迅速响应的需求,面向大众的服务越来越要求三维虚拟地球系统能够为公众提供随时的、随地的、按需的、以地理信息为依托的多源信息服务模式。

同时伴随着无线网络和移动终端的迅捷发展,基于mobilegis(mobilegeographicinformationsystem,移动地理信息系统)的移动三维地理信息服务系统成为当今的研发热点。作为移动三维gis的应用方向之一,移动三维虚拟地球能够整合在线的多源地理信息资源,为公众提供智能的、按需的、基于位置的多源地理信息应用服务。

由于受到移动智能终端硬件资源限制,传统的运行于pc端的三维虚拟地球系统在移动终端高效运行还存在诸多问题。移动终端多个操作系统的特性使得移动三维虚拟地球的设计必须遵循跨平台原则、低耦合性原则。此外,为满足地理数据获取、处理、加载调度、渲染过程的快速高效,数据下载、数据处理、调度更新、渲染模型必须能够满足用户流程操作的要求。

综合来看,现有技术主要存在以下几点缺陷:一是现有技术的三维虚拟地球的系统架构不适合移动平台,系统架构没有充分考虑跨平台设计,系统的开发和实现依赖于操作系统或者硬件环境,系统程序代码直接在其他操作系统上无法运行;二是由于移动设备硬件cpu、ram、gpu资源有限,现有技术的平台设计没有充分考虑移动设备硬件实际,不满足负载小、自适应强、上下文感知等特性,不能在使用最少系统资源的前提下适应ios和android两种主流的系统平台并自动感知系统的上下文环境,实现快平台特性;三是现有技术无法实现高内聚设计,无法实现单一模块只负责一项任务实现,与其他系统模块之间的依赖关系少,无法实现单一责任原则,现有技术无法实现低耦合设计,系统模块之间相互依赖多,模块与模块之间的接口多而复杂,每个模块无法完成特定的功能任务;四是没有采用多线程系统架构,移动三维虚拟地球各模块无法同步并行,不同的线程同步机制无法实现线程之间资源共享,不能发挥移动设备硬件资源特性,用户的系统体验较差。



技术实现要素:

针对现有技术的不足,本发明提供的一种基于移动平台的三维虚拟地球的系统架构,系统架构充分考虑跨平台设计,弥补了现有技术三维虚拟地球的系统架构设计无法在多个操作系统的移动设备正常运行的缺陷,跨平台设计满足负载小、自适应强、上下文感知等特性,能在使用最少系统资源的前提下适应ios和android两种主流的系统平台并自动感知系统的上下文环境,实现快平台特性,系统架构实现了高内聚设计,系统模块是由相关性很高的代码组成,实现了单一模块只负责一项任务实现,系统架构实现了实现低耦合设计,模块与模块之间的接口少而简单,使得每个模块都能够完成特定的功能任务,采用多线程系统架构,系统在运行时不同线程之间互相独立又精密配合,既使得各线程之间独立运行又能够相互联系,最大限度的发挥了移动设备硬件资源特性,又能够增强用户的系统体验。

为达到以上技术效果,本发明所采用的技术方案如下:

一种基于移动平台的三维虚拟地球的系统架构,包括移动设备跨平台、高内聚低耦合性、多线程的系统框架设计,将数据下载、数据处理、调度更新、渲染模型并行进行;

移动设备跨平台设计采用c语言编程环境,并采用ui与底层核心分离的设计,ui使用系统特有语言进行与用户操作相关的开发,底层采用c语言封装opengles的方式构建核心类库与接口;

高内聚低耦合性设计依据ui与底层核心类分开设计,底层核心的各个模块分别响应ui的不同事件,核心类各模块之间相互独立;纵向上利用分层的架构将系统的应用层、核心层、底层区分开来,系统不同层级之间各自实现相应的逻辑功能,层级之间相互依赖,但是相同层级模块相互独立;横向上按照系统功能划分各个子系统来实现横向上的低耦合,系统模块的划分严格按照功能实现来构建,功能之间尽力相互独立。

多线程设计在单一进程中开启多个线程,不同线程之间同时执行系统任务且互不干扰,系统整体由程序主线程派生,其中ui操作、窗体、界面基本功能在主线程中完成,用户触控交互地理数据按照需要的范围进行展示、更新,由主线程中派生出渲染线程和更新线程,其中更新线程负责数据的更新组织和内存加载,渲染线程负责地理数据的三维渲染,更新线程频繁的进行数据加载请求时从程序主线程中派生出多个下载线程来同步执行下载任务,系统多线程框架中更新线程和渲染线程各一个,下载线程按照用户加载异构数据的类型的数量需求开启合适的个数,其中最后一个下载线程处理系统中一些比较繁琐的计算或者请求业务,多线程系统架构中移动三维虚拟地球各模块同步并行,通过设定线程优先级来实现线程之间的片元时间分配,不同的线程同步机制实现线程之间资源共享。

一种基于移动平台的三维虚拟地球的系统架构,进一步的,移动设备跨平台设计方案满足负载小、自适应强、上下文感知特性,在使用最少系统资源的前提下能够适应这两种主流的系统平台并自动感知系统的上下文环境,实现快平台特性,采用c语言编程环境并通过ui与核心分开的设计原则实现跨平台设计方案,底层采用c语言封装opengles的方式构建核心类库与接口,ui与底层核心分离的情况下,ui将系统硬件设备、设备上下文、图像像素参数封装传入底层核心,借助egl类实现ui与底层渲染api的统一,实现系统渲染的上下文自动适应感知。

一种基于移动平台的三维虚拟地球的系统架构,进一步的,高内聚低耦合性设计在纵向上,将移动三维虚拟地球划分成三个层次,应用层封装用户基于gis系统的基本运用,在核心层的基础上构建应用逻辑业务,核心层是对gis算法的封装,处理应用层的数据请求和信息加载操作,并将结果传递给应用层和底层,底层是对数据和opengles的封装,核心层分析的结果将通过底层组织传递到渲染管线,实现数据的三维空间展示;在横向上,将三维虚拟地球系统按照需要实现的功能分为系统配置模块、下载缓存模块、集成调度模块、信息查询模块、导航定位模块,下载缓存模块负责多源异构地理数据的获取与存储,集成调度模块复杂异构地理数据的集成和加载调度,信息查询模块复杂地理信息的查询与反馈,导航定位模块负责移动设备实时定位与导航,各个功能模块之间相互独立,相互依赖少。

一种基于移动平台的三维虚拟地球的系统架构,进一步的,多线程设计系统整体由程序主线程派生,其中ui操作、窗体、界面基本功能在主线程中完成,程序启动首先将加载全球视野范围内粗精度的地理数据,此时更新线程和渲染线程同步开启,更新线程将首先组建虚拟地球模型的几何坐标点并请求全球范围内粗精度的影像、地形、地名图层信息,按照异构数据集不同类型的个数,同步开启相应个数的下载线程,并构建下载任务和下载队列。

一种基于移动平台的三维虚拟地球的系统架构,进一步的,多线程设计中系统在同一时刻只能有一个线程访问,移动三维虚拟地球系统中数据的获取、更新、渲染分属于不同的线程,系统按照不同功能的实现选定特定的互斥操作,移动终端操作系统的线程同步机制包括互斥锁、条件变量、信号量。

一种基于移动平台的三维虚拟地球的系统架构,进一步的,互斥锁机制将一部分程序代码锁定,使得同一时刻只允许一个线程执行这一类关键代码;条件变量机制利用线程间的全局变量实现线程同步,按照特定的条件控制线程挂起、触发、等待;信号量机制通过控制原子变量的增减来智能的判断线程阻塞与开启。

一种基于移动平台的三维虚拟地球的系统架构,进一步的,多线程设计中,数据的获取与更新分别属于相同数据的读写操作,采用读写互斥锁进行线程同步实现写操作互斥读操作,读操作之间将共享某一区域数据并同时访问;数据的更新与绘制操作分别在不同线程中独立的组织和渲染,采用信号量或者条件互斥的方式能够使得数据更新完毕以后再进入渲染线程,需要加载的数据在两个线程之间实现线程同步。

与现有技术相比,本发明的优点在于:

1.本发明提供的一种基于移动平台的三维虚拟地球的系统架构,三维虚拟地球的系统架构设计适合移动平台,系统架构充分考虑跨平台设计,弥补了现有技术三维虚拟地球的系统架构设计无法在多个操作系统的移动设备正常运行的缺陷,系统的开发和实现不依赖于操作系统合硬件环境,系统程序代码在其他操作系统上可以运行。

2.本发明提供的一种基于移动平台的三维虚拟地球的系统架构,移动设备跨平台设计充分考虑移动设备硬件cpu、ram、gpu资源有限的实际,跨平台设计满足负载小、自适应强、上下文感知等特性,能在使用最少系统资源的前提下适应ios和android两种主流的系统平台并自动感知系统的上下文环境,实现快平台特性。

3.本发明提供的一种基于移动平台的三维虚拟地球的系统架构,系统架构实现了高内聚设计,系统模块是由相关性很高的代码组成,实现了单一模块只负责一项任务实现,与其他系统模块之间的依赖关系少,实现了单一责任原则,系统架构实现了实现低耦合设计,模块与模块之间的接口少而简单,使得每个模块都能够完成特定的功能任务,模块之间关系较复杂时考虑进一步的模块任务划分。

4.本发明提供的一种基于移动平台的三维虚拟地球的系统架构,采用多线程系统架构,系统在运行时不同线程之间互相独立又精密配合,设定线程优先级来实现线程之间的片元时间分配,不同的线程同步机制实现线程之间资源共享。既使得各线程之间独立运行又能够相互联系,最大限度的发挥了移动设备硬件资源特性,又能够增强用户的系统体验。

附图说明

图1是本发明基于移动平台的三维虚拟地球的系统架构纵向分层示意图。

图2是本发明基于移动平台的三维虚拟地球的系统架构横向分块示意图。

图3是本发明基于移动平台的三维虚拟地球的系统架构线程框架示意图。

图4是本发明基于移动平台的三维虚拟地球的系统运行流程示意图。

具体实施方式

下面结合附图,对本发明提供的一种基于移动平台的三维虚拟地球的系统架构的技术方案进行进一步的描述,使本领域的技术人员可以更好的理解本发明并能予以实施。

参见图1至图4,本发明提供的一种基于移动平台的三维虚拟地球的系统架构,根据移动终端多个操作系统的特性,移动三维虚拟地球的设计遵循跨平台原则、低耦合性原则,满足地理数据获取、处理、加载调度、渲染过程的快速高效,采用多线程的系统框架设计,将数据下载、数据处理、调度更新、渲染模型并行进行,满足用户流程操作的要求。

一、移动设备跨平台设计

跨平台的开发和实现不依赖于操作系统或者硬件环境,系统程序代码不需要修改过多就可以在其他操作系统上成功运行。软件功能实现一定程度的依赖系统api调用。常见的如java语言提供runtime中间件的方式实现跨平台功能,c/c++语言是一种标准且严格的跨平台语言。

一般而言语言的跨平台特性越强,其抽象性越高,对底层的硬件控制性越差,opengles渲染api采用统一规范的方式规定硬件厂家对特定api接口的实现。java程序通过则依赖于java虚拟机,不同程序通过虚拟机调用底层硬件驱动。

移动终端操作系统平台由ios和android共同占领市场份额百分之八十以上,且主流的开发语言分别为objective-c和java语言。此外,移动设备硬件cpu、ram、gpu资源有限。因此,移动设备跨平台设计方案满足负载小、自适应强、上下文感知等特性,在使用最少系统资源的前提下能够适应这两种主流的系统平台并自动感知系统的上下文环境,实现快平台特性。

移动三维虚拟地球系统必须满足当前主流操作系统的运行环境,并且在最少系统资源占用的情况下,自动感知当前操作系统的相关的api如渲染和操作等。为此选择c语言编程环境并通过ui与核心分开的设计原则实现跨平台设计方案。

从移动终端系统特性来分析,android和ios操作系统与ui相关的系统函数使用系统特定语言分别为java、objective-c语言,底层核心都支持常见的跨平台语言-c语言。从渲染api的层面来说,opengles在android和ios操作系统都支持底层c语言的函数接口,用户可以将opengles代码进行封装,构建底层核心代码。从系统资源占用情况分析,底层核心代码直接调用opengles渲染api的方式不需要系统进行额外的开销,占用系统资源最少。ui与底层核心分离的情况下,ui将系统硬件设备、设备上下文、图像像素参数等封装传入底层核心,借助egl类实现ui与底层渲染api的统一,实现系统渲染的上下文自动适应感知。

跨平台设计是移动三维虚拟地球系统能够在多个操作系统的移动设备正常运行的基本原则。采用ui与底层核心分离的设计,使得ui使用系统特有语言进行与用户操作相关的开发,底层采用c语言封装opengles的方式构建核心类库与接口,跨平台设计方法兼顾了用户体验和系统的高效性与跨平台特性。

二、高内聚低耦合性设计

ui与底层核心类分开设计满足底层核心的各个模块能够分别响应ui的不同事件,ui事件的独立性满足核心类各模块之间相互独立,即核心模块的低耦合高内聚性。

内聚是指软件系统单一模块内部元素之间的紧密程度,高内聚是指系统模块是由相关性很高的代码组成,单一模块只负责一项任务实现,与其他系统模块之间的依赖关系少,即单一责任原则。

耦合是指软件系统各个模块之间的互联的紧密程度,低耦合是指系统模块之间较少相互依赖,模块与模块之间的接口尽量少而简单,使得每个模块都能够完成特定的功能任务,模块之间关系较复杂时将考虑进一步的模块任务划分。

本发明的软件高内聚低耦合的设计从两个方面实现这一要求:纵向上,利用分层的架构将系统的应用层、核心层、底层区分开来,系统不同层级之间各自实现相应的逻辑功能,层级之间可以相互依赖,但是相同层级模块相互独立。横向上,按照系统功能划分各个子系统来实现横向上的低耦合,系统模块的划分严格按照功能实现上来构建,功能之间尽力相互独立。

移动三维虚拟地球系统能够实现地理数据的获取、集成、展现等基本功能,也能够满足用户信息查询、位置导航的特殊应用功能。基于移动平台的三维虚拟地球的系统架构在纵向上,将移动三维虚拟地球划分成三个层次。应用层封装用户基于gis系统的基本运用,在核心层的基础上构建应用逻辑业务。核心层是对gis算法的封装,处理应用层的数据请求和信息加载操作,并将结果传递给应用层和底层。底层是对数据和opengles的封装,核心层分析的结果将通过底层组织传递到渲染管线,实现数据的三维空间展示,如图1所示。在横向上,将三维虚拟地球系统按照需要实现的功能如数据获取、数据集成调度、信息查询、导航服务的功能分为系统配置模块、下载缓存模块、集成调度模块、信息查询模块、导航定位模块。下载缓存模块负责多源异构地理数据的获取与存储。集成调度模块复杂异构地理数据的集成和加载调度。信息查询模块复杂地理信息的查询与反馈。导航定位模块负责移动设备实时定位与导航。各个功能模块之间相互独立,相互依赖较少,如图2所示。

三、多线程系统框架设计

线程是进程中一个单一顺序的控制流,单一程序进程可以同时拥有多个线程,线程本身并不占用系统资源,只是封装了一些特定的数据结构和算法流程。不同线程运行在相同的进程虚拟地址空间中,可以实现资源的共享和线程之间的通讯。多线程是指在单一进程中开启多个线程,不同线程之间同时执行系统任务且互不干扰。此外,针对多核cpu设备,多线程程序设计能够充分的利用cpu资源,避免串行程序设计造成的任务聚集,一定程度上提高了程序的反应速度。

移动三维虚拟地球要求用户在操作移动终端触摸屏时,系统能够同时进行多源异构数据获取、三维地理模型数据展示、不同尺度的地理数据调度更新等任务。单一线程的系统架构不足以满足用户多任务并发的需求,移动终端下多线程的系统框架是移动三维虚拟地球的核心基础。

本发明的系统整体由程序主线程派生,其中ui操作、窗体、界面等基本功能在主线程中完成。用户触控交互要求地理数据按照需要的范围进行展示、更新,为此,由主线程中派生出渲染线程和更新线程,其中更新线程负责数据的更新组织和内存加载,渲染线程负责地理数据的三维渲染。用户频繁的切换场景的地理范围使得更新线程频繁的进行数据加载请求,从程序主线程中派生出多个下载线程来同步执行下载任务,使得用户能够实时将所需要的显示的地理范围数据展示到屏幕上。系统多线程框架如图3所示,其中更新线程和渲染线程各一个,下载线程按照用户加载异构数据的类型的数量需求可以开启合适的个数,其中最后一个下载线程可以处理系统中一些比较繁琐的计算或者请求业务。

系统在运行时不同线程之间互相独立又精密配合,程序运行过程如图4所示。程序启动首先将加载全球视野范围内粗精度的地理数据,此时更新线程和渲染线程同步开启,更新线程将首先组建虚拟地球模型的几何坐标点并请求全球范围内粗精度的影像、地形、地名图层信息,按照异构数据集不同类型的个数,同步开启相应个数的下载线程,并构建下载任务和下载队列。

同一进程中的不同线程在运行过程中cpu将自动为各线程分配时间片,线程在各自的时间片内独立运行,cpu将按照线程之间的关系如轮循或者抢占来自动分配各线程运行时间片的大小。主流市场的android/ios操作系统都是基于linux内核开发实现,线程的设定符合linux线程的基本特性。移动三维虚拟地球系统要求主线程、更新线程、渲染线程、下载线程能够并行且始终运行,为此我们将这几类线程属性设置为linux线程调度策略中的循环线程,使得线程能够在程序进程过程中始终运行且线程的时间片元分配受线程优先级(priority)的控制。其中ui线程、渲染线程、更新线程、下载线程的优先级分别决定了用户的交互响应速度、渲染的帧率、数据更新的速度、数据获取的速度。此外,为满足用户体验和三维虚拟地球数据显示效率,ui主线程的优先级将高于渲染线程,渲染线程将高于更新线程,更新线程将高于下载线程,各下载线程优先级相同。

各线程除了通过设定优先级来使得cpu为其分配充裕的片元时间以外,在频繁的片元切换中不同线程在同时访问某一资源时将出现资源互抢现象。为此,系统必须保证在同一时刻只能有一个线程访问-即实现系统线程同步。本发明移动终端操作系统线程同步机制有互斥锁、条件变量、信号量,互斥锁机制能够将一部分程序代码锁定,使得同一时刻只允许一个线程执行这一类关键代码。条件变量机制利用线程间的全局变量来实现线程同步,按照特定的条件控制线程挂起、触发、等待。信号量通过控制原子变量的增减来智能的判断线程阻塞与开启。移动三维虚拟地球系统中数据的获取、更新、渲染分属于不同的线程,系统按照不同功能的实现与特定选定特定的互斥操作。数据的获取与更新分别属于相同数据的读写操作,采用读写互斥锁进行线程同步能够实现写操作互斥读操作,读操作之间将能够共享某一区域数据并同时访问。数据的更新与绘制操作分别在不同线程中独立的组织和渲染,是针对相同地理数据的两个不同操作,但是更新必须在渲染之前,采用信号量或者条件互斥的方式能够使得数据更新完毕以后再进入渲染线程,使得需要加载的数据在两个线程之间实现线程同步,最大限度的节约了用户等待响应的时间并能够保证当前视口显示的地理数据为加工处理后的最新数据。

多线程系统架构能够使得移动三维虚拟地球各模块同步并行,通过设定线程优先级来实现线程之间的片元时间分配,不同的线程同步机制实现线程之间资源共享。既使得各线程之间独立运行又能够相互联系,最大限度的发挥了移动设备硬件资源特性,又能够增加系统的响应时间并增强用户的系统体验。

以上显示和描述了本发明的基本原理、主要特征和优点。尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1