CN102426596B - 地图加载方法和装置 - Google Patents
地图加载方法和装置 Download PDFInfo
- Publication number
- CN102426596B CN102426596B CN201110343993.9A CN201110343993A CN102426596B CN 102426596 B CN102426596 B CN 102426596B CN 201110343993 A CN201110343993 A CN 201110343993A CN 102426596 B CN102426596 B CN 102426596B
- Authority
- CN
- China
- Prior art keywords
- map
- request
- driver element
- resource
- thematic maps
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Processing Or Creating Images (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Instructional Devices (AREA)
Abstract
本发明提供了一种地图加载方法和装置,其中,地图加载方法包括:地图驱动器收到加载地图的请求,所述请求中包括所请求的地图的数据资源信息;地图驱动器按照设定规则,对所述数据资源信息进行划分,生成多个子请求;地图驱动器通过所述多个子请求分别请求所述地图的数据资源,并使用返回的所述数据资源完成所述地图的加载。通过本发明,实现了三维地图加载快速,减少用户等待时间,提升用户使用体验的效果。
Description
技术领域
本申请涉及地理信息技术领域,特别是涉及一种地图加载方法和装置。
背景技术
GIS(Geographic Information System,地理信息***)是以地理空间数据库为基础,在计算机软硬件的支持下,运用***工程和信息科学的理论,科学管理和综合分析具有空间内涵的地理数据,以提供管理、决策等所需信息的技术***。
随着GIS的发展,三维地图在当今的GIS软件产品中表现的越来越突出,而三维地图可视化更是摆在了一个显著的位置。一方面三维地图上表现的要素极其丰富,另一方面三维地图上的用户体验非常重要。三维地图可以显著地改善用户体验,能够快速及时地再现三维信息,增强用户使用感受,如三维漫游、视域内数据的加载与信息的展示等,并且,能够为空间分析提供有效手段,如流域内包含的河流水系、水系的上下游演变分析研究等。
现有的三维地图加载,既有同步加载也有异步加载。同步加载或者异步加载是基本的传输技术,一般指的是在网络通信过程中,通信双方要交换数据,需要高度的协同工作,而采用同步或异步的传输方式进行处理。同步加载的方式是发送方发出数据后,等接收方发回响应以后才发下一个数据请求,这种方式对于数据量小,或者客户确实需要等待服务器处理处理完毕之后才返回的情况,这种方式对于海量的地理信息数据较少使用。在网络环境中,尤其是在需要大量的服务客户交互的三维环境下,如三维地图的加载,一般采用的是异步加载方式,就是发送方发出数据后,不等接收方发回响应,接着发送下个数据请求,这期间客户端并不会因线程阻塞而产生等待或没有响应等。
三维地图的加载有其自身的特点,即:三维地图承载的地理数据都是海量的,加载三维地图时需要加载的数据量巨大;三维地图数据的动态性,也即数据的时态性,即,三维视图可视域是动态的,所以数据是随可视域变化而动态加载并显示的,地理现象是动态的,决定了表现地理现象的数据也是动态的,如洪水的蔓延、潮涨潮落、泥石流的演进等;真实的地形,即地理表面是起伏不平的,决定了数据具有三维性,也使得三维地图数据量巨大;在有限的网络带宽下,海量数据加载需要大量的信息交换。因此,目前的三维地图异步加载技术虽然不必让客户端过长等待,在一定程度上提升了用户使用三维地图的使用体验,但是,其仍无法从本质上解决三维地图加载时间长,用户使用体验不高的问题。
发明内容
本申请所要解决的技术问题是提供一种地图加载方法和装置,能够解决三维地图加载时间长,用户使用体验不高的问题。
为了解决上述问题,本申请公开了一种地图加载方法,包括:地图驱动单元收到加载地图的请求,所述请求中包括所请求的地图的数据资源信息;所述地图驱动单元按照设定规则,对所述数据资源信息进行划分,生成多个子请求;所述地图驱动单元通过所述多个子请求分别请求所述地图的数据资源,并使用返回的所述数据资源完成所述地图的加载;
其中,所述地图为专题地图,所述专题地图的映射视图包括以下至少之一:图层视图、专题地图视图、活动的专题地图选择器;在所述地图驱动单元收到加载地图的请求的步骤之前,还包括:所述地图驱动单元订阅所述专题地图的映射视图的用户操作事件,以获取用户对所述专题地图的映射视图的修改和/或输入;所述地图驱动单元根据所述修改和/或输入生成子请求,由地图驱动单元中的资源加载器根据所述子请求,向所述服务器异步请求新的数据和/或资源并返回给所述地图驱动单元,和/或,所述地图驱动单元根据所述修改和/或输入,更新所述专题地图的映射视图。
优选地,所述地图驱动单元按照设定规则,对所述数据资源信息进行划分,生成多个子请求的步骤包括:所述地图驱动单元按照数据资源类别,将所述数据资源信息划分为多个不可分割的粒度,每个粒度生成一个子请求。
优选地,所述数据资源类别包括以下至少之一:所述地图的组织结构、所述地图的名称、所述地图的图标、所述地图的图层的结构、每个所述图层的名称、每个所述图层的图标。
优选地,所述地图为专题地图,所述专题地图的映射视图,包括以下至少之一:图层视图、专题地图视图、活动的专题地图选择器。
优选地,在所述地图驱动单元收到加载地图的请求的步骤之前,还包括:接收用户通过所述图层视图、或所述专题地图视图、或所述活动的专题地图选择器的输入;根据所述用户的输入,生成不同的所述加载地图的请求。
优选地,所述地图驱动单元通过所述多个子请求分别请求所述地图的数据资源的步骤包括:所述地图驱动单元将所述多个子请求分别发送给资源加载器;所述资源加载器接收所述地图驱动单元发送的子请求,并向服务器异步请求相应的数据和/或资源,并返回给所述地图驱动单元。
优选地,在所述地图驱动单元收到加载地图的请求的步骤之前,还包括:所述地图驱动单元订阅所述资源加载器的资源加载结束事件,以确定所述资源加载器向所述服务器异步请求相应的数据和/或资源成功或失败后,使用所述资源加载器返回的所述数据和/或资源的方式。
优选地,在所述地图驱动单元将所述多个子请求分别发送给资源加载器的步骤之前,还包括:所述地图驱动单元判断所述多个子请求中,是否有子请求所请求的数据资源已被所述资源加载器返回;若是,则将除该子请求外的其它子请求发送给所述资源加载器;若否,则将所述多个子请求发送给所述资源加载器。
为了解决上述问题,本申请还公开了一种地图加载装置,包括地图驱动单元,所述地图驱动单元包括:接收模块,用于接收加载地图的请求,所述请求中包括所请求的地图的数据资源信息;划分模块,用于按照设定规则,对所述数据资源信息进行划分,生成多个子请求;加载模块,用于通过所述多个子请求分别请求所述地图的数据资源,并使用返回的所述数据资源完成所述地图的加载;
其中,其中,所述地图为专题地图,所述专题地图的映射视图包括以下至少之一:图层视图、专题地图视图、活动的专题地图选择器;
所述地图驱动单元订阅所述专题地图的映射视图的用户操作事件,以获取用户对所述专题地图的映射视图的修改和/或输入;所述地图驱动单元根据所述修改和/或输入生成子请求,由地图驱动单元中的资源加载器根据所述子请求,向所述服务器异步请求新的数据和/或资源并返回给所述地图驱动单元,和/或,所述地图驱动单元根据所述修改和/或输入,更新所述专题地图的映射视图。
优选地,所述划分模块包括:最小粒度模块,用于按照数据资源类别,将所述数据资源信息划分为多个不可分割的粒度,每个粒度生成一个子请求。
优选地,所述地图为专题地图,所述专题地图的映射视图包括以下至少之一:图层视图、专题地图视图、活动的专题地图选择器;所述装置还包括:原请求划分模块,用于在所述接收模块接收加载地图的请求之前,接收用户通过所述图层视图、或所述专题地图视图、或所述活动的专题地图选择器的输入;根据所述用户的输入,生成不同的所述加载地图的请求。
与现有技术相比,本申请具有以下优点:
本申请在加载地图,尤其是三维地图时,将加载请求划分为多个子请求,按照子请求分别请求所要加载的地图的数据和资源。一方面,将加载请求划分为多个子请求,使得数据交互和传输量大大减小,以符合网络带宽的数据传输要求,保证请求的响应能力和时间;另一方面,所加载的地图的数据和资源可能分布在不同的服务器上,将一个加载请求划分为多个子请求,分别向不同的服务器请求资源和数据,既可以避免数据的重复申请和交互,更有效保证了数据的返回和响应速度,保证了数据的分布式存储的需要。可见,通过本申请解决了现有技术加载三维地图时,加载时间长,用户使用体验不高的问题,从而实现了三维地图加载快速,减少用户等待时间,提升用户使用体验的效果。
附图说明
图1是根据本申请实施例一的一种地图加载方法的步骤流程图;
图2是根据本申请实施例二的一种地图加载方法的步骤流程图;
图3是根据本申请实施例三的一种地图加载方法的步骤流程图;
图4是根据本申请实施例四的一种地图加载方法的步骤流程图;
图5是根据本申请实施例五的一种地图加载装置的结构框图;
图6是根据本申请实施例六的一种地图加载装置的结构示意图;
图7是图6所示实施例中的一种三维视图的示意图;
图8是图6所示实施例中的地图驱动单元的工作逻辑示意图;
图9是图6所示实施例中的资源加载器的工作逻辑示意图;
图10是图6所示实施例中的图层视图的示意图;
图11是图6所示实施例中的专题地图视图的示意图;
图12是图6所示实施例中的活动的专题地图选择器的工作逻辑示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
实施例一
参照图1,示出了根据本申请实施例一的一种地图加载方法的步骤流程图。
本实施例的地图加载方法包括以下步骤:
步骤S102:地图驱动单元收到加载地图的请求。
其中,所述请求中包括所请求的地图的数据资源信息。也即,想要显示该地图所需要的数据和/或资源的信息。
步骤S104:地图驱动单元按照设定规则,对数据资源信息进行划分,生成多个子请求。
本步骤中,设定规则可以由本领域技术人员根据实际需要灵活设置。优选地,可以按照数据资源类别,将数据资源信息划分为最小粒度,即不可再分割的粒度,如一个地图的组织结构,或一个图层的名称等,然后,根据划分后的最小粒度生成多个子请求。当然,也可以根据网络带宽情况对请求进行划分,将其划分为多个满足网络传输带宽的子请求,等等。
步骤S106:地图驱动单元通过多个子请求分别请求地图的数据资源,并使用返回的数据资源完成地图的加载。
本步骤中,地图驱动单元通过多个子请求向一个服务器,或向多个不同的服务器请求数据和/或资源,并使用请求回来的数据和/或资源进行地图加载。
通过本实施例,在加载地图,尤其是加载三维地图时,将加载请求划分为多个子请求,按照子请求分别请求所要加载的地图的数据和资源。一方面,将加载请求划分为多个子请求,使得数据交互和传输量大大减小,以符合网络带宽的数据传输要求,保证请求的响应能力和时间;另一方面,所加载的地图的数据和资源可能分布在不同的服务器上,将一个加载请求划分为多个子请求,分别向不同的服务器请求资源和数据,既可以避免数据的重复申请和交互,更有效保证了数据的返回和响应速度,保证了数据的分布式存储的需要。因此,解决了现有技术加载三维地图时,加载时间长,用户使用体验不高的问题,实现了三维地图加载快速,减少用户等待时间,提升用户使用体验的效果。
实施例二
参照图2,示出了根据本申请实施例二的一种地图加载方法的步骤流程图。本实施例中,以加载三维专题地图为例,但不限于此,其它三维地图或者平面地图等均可参照本实施例的方法,实现地图加载。
本实施例的地图加载方法包括以下步骤:
步骤S202:用户端发出加载专题地图的请求给地图驱动单元。
其中,加载专题地图的请求中包含有加载所述专题地图所需要的数据资源信息。
步骤S204:地图驱动单元接受到了请求,按照数据资源类别,将该请求划分为多个子请求。
具体地,地图驱动单元按照数据资源类别,将请求中的数据资源信息划分为多个不可分割的粒度(即最小粒度),然后根据每个粒度生成一个子请求。其中,数据资源类别可以是:地图的组织结构、地图的名称、地图的图标、地图的图层的结构、每个图层的名称、和每个图层的图标中的一个或多个,等等。本实施例中,数据资源类别则可能是:待加载的专题地图的组织结构、待加载的专题地图的名称、待加载的专题地图的图标、待加载的专题地图的图层的结构、待加载的专题地图的每个图层的名称、和待加载的专题地图的每个图层的图标中的一个或多个等。
步骤S206:地图驱动单元将多个子请求发送给资源加载器。
在地图驱动单元划分完子请求后,开始派发一个加载专题地图的任务给资源加载器。通常情况下,地图的组织结构加载是首先需要考虑的内容。但不限于此,任意其它数据和/或资源的加载都是可行的。本实施例仅以首先加载三维专题地图的组织结构为例。
步骤S208:资源加载器通过所请求的任务类型,执行从远程资源(服务器)获取专题地图的数据的子请求,并返回数据给地图驱动单元。
本实施例中,资源加载器首先执行从远程资源(服务器)获取专题地图的组织结构的子请求。
步骤S210:地图驱动单元获得了专题地图所需要的远程资源之后,负责登记相应的数据项,加载专题地图的相应部分。
步骤S212:在登记的过程中,如果需要其它资源,用户端会再次发起请求,向地图驱动单元请求数据。
其中,其它资源包括诸如图标、名称等资源。
步骤S214:地图驱动单元接受到了请求,再次划分子请求,开始派发新的任务给资源加载器。
需要说明的是,若本次请求本身即为最小粒度的请求,不可再分割,则不必再次进行划分。
步骤S216:资源加载器通过请求的任务类型,负责从远程资源获取所请求的其它数据资源。
本实施例中,获取诸如图标、名称等其它资源。
步骤S218:地图驱动单元获得了该其它数据资源之后,负责设置相应的数据项,加载专题地图的相应部分。
步骤S220:重复步骤S212-S218,直到本次登记过程中,所需的所有资源加载完毕。
需要说明的是,步骤S212-S218为可选步骤,在实际登记过程中,有可能不会执行。
步骤S222:本次登记过程中,所需的所有资源加载完毕后,返回步骤S208,继续执行其它子请求,参照步骤S208-S220重复执行,直到所有子请求执行完毕,从而完成三维地图的异步加载。
通过本实施例,实现了将一个大请求划分为多个小的子请求,分别进行数据资源请求和加载的三维地图加载方法,并且,在一次加载的过程中,可以再次递进逐层加载,从而使得一次数据请求和加载数据量小,数据传输和交互快,提高了三维地图加载时间,减少了用户等待时间,提升了用户使用体验。
实施例三
参照图3,示出了根据本申请实施例三的一种地图加载方法的步骤流程图。本实施例中,仍以加载三维专题地图为例,但同样不限于此,其它三维地图或者平面地图等均可参照本实施例的方法,实现地图加载。此外,本实施例中,用户端通过用户界面向用户提供了专题地图的映射视图,专题地图的映射地图是专题地图的数据资源,和/或其它资源的映射,包括图层视图、专题地图视图、和活动的专题地图选择器。当然,实际应用中,提供的专题地图的映射视图也可以仅为上述视图中的一个或多个,当然还可以由本领域技术人员根据实际需要设置为其它视图或增加其它视图,本申请对此不作限制。通过提供专题地图的映射视图,可以预先对加载地图的请求进行粗划分,一方面减轻了地图驱动单元进一步划分请求的工作量,另一方面也使得用户的请求更为准确具体。
本实施例的地图加载方法包括以下步骤:
步骤S302:用户通过客户端提供的专题地图的映射视图,生成一个加载专题地图的请求,并发送给地图驱动单元。
本实施例中,设定用户先通过客户端提供的专题地图的映射视图,发出一个加载该专题地图的组织结构的请求。
步骤S304:地图驱动单元接受到了请求,开始派发一个加载专题地图的任务给资源加载器。
本实施例中,因加载专题地图的组织结构的请求已为最小粒度请求,不可再分割,因此,地图驱动单元不再对该请求进行划分,而是将该请求转发给资源加载器,即派发一个加载专题地图的任务给资源加载器。
步骤S306:资源加载器通过请求的任务类型,负责从远程资源获取专题地图的数据资源。
本实施例中,获取的专题地图的数据资源即专题地图的组织结构。远程资源可以为存储有待加载专题地图的数据和/或资源的远程服务器。
步骤S308:地图驱动单元获得了专题地图所需要的远程资源之后,负责向图层视图、专题地图视图、活动的专题地图选择器登记相应的数据项。
步骤S310:在登记的过程中,如果需要其它资源,再次向地图驱动单元发送请求,请求数据。
其中,其它资源包括诸如图标、名称等资源。
步骤S312:地图驱动单元接受到了请求,开始派发一个新的任务给资源加载器。
需要说明的是,如果本次请求中所请求的资源已为最小粒度资源,则不再对该请求进行划分;如果本次请求中所请求的资源不是最小粒度资源,则需要对该请求进行划分,如按照资源类别或网络带宽等,将其划分为多个不可分割的粒度,进而生成多个子请求,向资源加载器派发。
本实施例以本次请求不需再划分为子请求为例。
步骤S314:资源加载器通过请求的任务类型,负责从远程资源获取其它数据资源。
本实施例中,资源加载器从远程资源获取诸如图标或名称等资源。
步骤S316:地图驱动单元获得了远程数据资源之后,负责向图层视图、专题地图视图、活动的专题地图选择器设置相应的数据。
步骤S318:重复步骤S310-S316,直至本次登记所需数据和/或资源加载完成。
步骤S320:继续接收用户通过客户端提供的专题地图的映射视图输入的其它请求,重复步骤S302-S318,直至所有请求处理完成,从而完成三维地图的异步加载。
本实施例通过客户端提供的专题地图的映射视图,使得用户在加载专题地图时,即对请求进行了划分,这种预划分大大减轻了地图驱动单元的工作量,尤其是在预划分的请求即已为最小粒度的请求的情况下,则地图驱动单元无须进行再次划分;而在预划分的请求还需进一步进行划分的情况下,因预划分的请求粒度已较小,从而使得地图驱动单元不必做过多的工作,即可将该请求划分为最小粒度的请求,这样的预划分进一步提高了数据处理和返回效率,加快了地图加载速度,提升了用户体验。
实施例四
参照图4,示出了根据本申请实施例四的一种地图加载方法的步骤流程图。本实施例仍以加载三维专题地图为例,但同样不限于此,其它三维地图或者平面地图等均可参照本实施例的方法,实现地图加载。此外,本实施例中,用户端通过用户界面向用户提供了专题地图的映射视图,包括图层视图、专题地图视图、和活动的专题地图选择器。
本实施例的地图加载方法包括以下步骤:
步骤S402:客户端发出一个加载地图的请求。
本实施例中,客户端发出一个加载专题图A的请求,通常一个专题图,其内容包括专题图本身的名称、图标;以及,专题图的组成,包括若干个图层和每个图层的名称、图标等。上述的专题图、图层、名称、图标都是不同类型的远程资源,且每一类资源都存储在远程的服务器端,且每一个资源都有一个唯一标识。
步骤S404:地图驱动单元接收请求,按照设定规则,对数据资源信息进行划分,生成多个子请求。
地图驱动单元是整个三维地图加载的核心,一方面需要划分子请求,分派任务给资源加载器通过远程服务加载资源,一方面要维护客户端各映射视图的显示内容。
地图驱动单元接受到加载地图的请求后,开始按照设定规则,本实施例中按照资源类型(如专题图、图层、名称、图标)划分该请求,生成多个子请求,派发不同的任务给资源加载器。
优选地,地图驱动单元订阅一个资源加载器的资源加载结束事件,即资源加载器向服务器异步请求相应的数据和/或资源成功或失败后的事件,即当数据返回之后,如何使用这些数据。需要说明的是,该步骤可以在步骤S402之前即已完成,或者,在***初始化时,一次性设置完成。
优选地,在步骤S402之前,或者,在***初始化时,地图驱动单元还可以订阅专题地图的映射视图的用户操作事件,以获取用户对所述专题地图的映射视图的修改和/或输入;进而,地图驱动单元根据该修改和/或输入生成子请求,并由资源加载器根据子请求,向远程的服务器异步请求新的数据和/或资源并返回给地图驱动单元,和/或,地图驱动单元根据该修改和/或输入,更新专题地图的映射视图。
通过订阅操作,使得当有事件不发生时,不必专门设定一对一的事件报告机制,而是采用广播的形式,使得所有相关部分均可获知事件的发生,从而减少信息交互,提高***处理速度。
优选地,地图驱动单元也可以将专题地图A登记到活动的专题地图选择器,此时可能还只是一个标识。
步骤S406:资源加载器根据多个子请求,开始利用异步传输的技术向远程服务器请求数据和/或资源,并将请求结果返回给地图驱动单元。
步骤S408:地图驱动单元接收资源加载器返回的数据和/或资源,进行地图加载。
当资源加载器返回了请求的数据之后,如,资源加载器返回了专题地图A的名称,地图驱动单元会主动地在活动的专题地图选择器中设置专题地图A的名称。同样,一个图标加载完成之后,地图驱动单元也会主动地设置专题地图A的图标。
当资源加载器返回了专题地图A的组成(如若干个图层:图层a,图层b,图层c…)之后,地图驱动单元会将这些图层分别登记到专题地图视图和图层视图,此时也可能只是一个标识。然后,地图驱动单元再次调度任务来获取这些图层(图层a,图层b,图层c…)的名称、图标等资源数据,在该调度过程中,地图驱动单元会判断本次的多个子请求中,是否有子请求所请求的数据资源已被资源加载器返回;若是,则将除该子请求外的其它子请求发送给资源加载器;若否,则将多个子请求发送给所述资源加载器。也即,如果在上次返回的数据列表中有同类并且是同一个标识的资源,那么就直接返回这个数据,否则,会派发一个新的任务给资源加载器。
当获得了这些图层的数据之后,如,资源加载器返回了图层a的名称,地图驱动单元会主动地设置图层视图中登记的图层a的名称,也会主动地设置在专题地图视图中登记的图层a的名称;同样,一个图标加载完成之后,会主动地设置图层a的图标。
另外,对于三维视图上显示的数据,如,显示的要素、显示的样式定义也会按照上述逻辑进行。
通过本实施例,将数据资源按照类别划分为最小的粒度,生成子请求,按照这个粒度分别请求数据资源,保证了请求的响应能力(如网络带宽的限制);不同的数据资源可能分布在不同的远程服务器上,通过本实施例,保证了数据的分布式存储的需要;此外,具有相同一类别同一标识的资源最大限度的保证了数据的共享,也就是说请求一次即可到处使用;并且,充分地保证了在三维地图加载中的用户体验,避免了在请求数据的过程中用户需要长时间等待的过程。
实施例五
参照图5,示出了根据本申请实施例五的一种地图加载装置的结构框图。
本实施例的地图加载装置包括地图驱动单元502,所述地图驱动单元502包括:接收模块5022,用于接收加载地图的请求,所述请求中包括所请求的地图的数据资源信息;划分模块5024,用于按照设定规则,对数据资源信息进行划分,生成多个子请求;加载模块5026,用于通过多个子请求分别请求地图的数据资源,并使用返回的数据资源完成地图的加载。
优选地,划分模块5024包括:最小粒度模块50242,用于按照数据资源类别,将数据资源信息划分为多个不可分割的粒度,每个粒度生成一个子请求。
优选地,数据资源类别包括以下至少之一:地图的组织结构、地图的名称、地图的图标、地图的图层的结构、每个图层的名称、每个图层的图标。
优选地,本实施例中的地图为专题地图,所述专题地图的映射视图包括以下至少之一:图层视图、专题地图视图、活动的专题地图选择器。
优选地,本实施例的地图加载装置还包括:原请求划分模块504,用于在接收模块5022接收加载地图的请求之前,接收用户通过图层视图、或专题地图视图、或活动的专题地图选择器的输入;根据用户的输入,生成不同的加载地图的请求。
优选地,本实施例的地图驱动单元502还包括资源加载器5028,用于接收划分模块5024生成的多个子请求,向服务器异步请求相应的数据和/或资源,并返回给加载模块5026。
优选地,本实施例的地图驱动单元502还包括判断模块50210,用于在资源加载器5028接收划分模块5024生成的多个子请求之前,判断多个子请求中,是否有子请求所请求的数据资源已被资源加载器5028返回;若是,则将除该子请求外的其它子请求发送给资源加载器5028;若否,则将所述多个子请求发送给资源加载器5028。
优选地,本实施例的地图驱动单元502还包括订阅模块50212,用于订阅资源加载器5028的资源加载结束事件,以确定资源加载器5028向服务器异步请求相应的数据和/或资源成功或失败后,使用资源加载器5028返回的数据和/或资源的方式;和/或,用于订阅专题地图的映射视图的用户操作事件,以获取用户对专题地图的映射视图的修改和/或输入;地图驱动单元502根据所述修改和/或输入生成子请求,由资源加载器5028根据所述子请求,向服务器异步请求新的数据和/或资源并返回给地图驱动单元502,和/或,地图驱动单元502根据所述修改和/或输入,更新专题地图的映射视图。
本实施例的地图加载装置用于实现前述相应方法实施例中的地图加载方法,并具有相应的方法实施例的有益效果,在此不再赘述。
实施例六
参照图6,示出了根据本申请实施例六的一种地图加载装置的结构示意图。本实施例以三维专题地图为例,具体说明本实施例的地图加载装置的结构。其它三维地图或平面地图可参照本实施例实现。
三维专题地图通常以三维视图的形式呈现给用户。三维视图是直接呈现给用户的可视化界面,是用户与软件进行交互的终端。一个良好的三维视图至少上包括两部分内容:一个地图可视化域,一个对地图要素进行控制的专题地图视图,如图7所示。可视化域显示的要素随三维视图中地图的加载而动态响应;三维视图上显示的要素,是随着活动的专题地图而变化的,也就是说当活动的地图变化了,三维视图上显示的内容会相应的发生变化。
本实施例实现上述三维专题地图加载的地图加载装置如图6所示,包括:地图驱动单元,设置于地图驱动单元中的资源加载器,包括图层视图、专题地图视图、和活动的专题地图选择器在内的专题地图的映射视图。
其中,地图驱动单元是三维专题地图异步加载的核心部件,它维护了图层视图、专题地图视图、和活动的专题地图选择器之间的操作,并持有一个资源加载器进行数据的加载。
地图驱动单元的工作逻辑如图8所示,包括:接收一个三维专题地图的加载请求(包括加载该三维专题地图全部数据的加载请求,和/或,接收用户通过图层视图、专题地图视图、或活动的专题地图选择器输入,生成的经过粗划分的加载请求);向资源加载器发出异步加载资源数据的请求(通过划分加载请求后的子请求,或者是经过粗划分后的加载请求);同时向专题地图视图和图层视图登记三维专题地图的组织结构,并设置标题、图标等数据;订阅资源加载器的资源加载结束事件,当服务或数据加载成功或失败时,相应地在“三维视图”上进行行更新;订阅专题地图视图的用户操作事件,当用户修改专题地图设置时,相应地在三维视图可视化域上进行更新,和/或通知资源加载器加载新的资源。
其中,资源加载器是异步加载数据(远程资源)的主要桥梁。通常,一个资源加载器为一个地图驱动单元(即该资源加载器的所有者)工作。其工作逻辑如图9所示,主要包括:接收一个外部添加的任务(由地图驱动单元通过请求或子请求派发);该任务负责异步请求资源和数据,如一个专题地图的图层组织结构,远程服务端的一个图标资源等;当资源加载完成后通告“所有者”(即其所属的地图驱动单元)相应地更新三维视图的数据。重复上述步骤,直到所有任务(请求或子请求)处理完成。
在三维地图的视图中,图层视图是对所有三维专题地图中的图层结构的列表,如图10所示。当地图驱动单元加载了一个专题地图之后,会对专题地图中的所有图层在图层视图中登记,如果一个图层在一个以上的专题地图中都存在,则仅登记一次。涉及图层视图的主要的操作包括:通过地图驱动单元添加或更新某个图层到图层列表中;移除一个或一批图层项;设置某个图层的图标;设置当前选择项;取得当前选择项;当某个图层的可见性改变了之后引发的事件;视图移除某项后引发的事件等。
专题地图视图是三维视图中的一个部分,主要是对某个专题地图的可视化。通常,该专题地图视图采用树形结构组织一个专题地图中的所有图层要素,图层一般包括两种类型:“分支”和“单个图层”,“分支”代表“树枝”,“单个图层”代表“树叶”。当地图驱动单元设置了一个活动的专题地图时,通过资源加载器动态地将该专题地图的组织(如图11所示)显示在一个专题地图视图上。如,一个图层加载后在该组织结构上显示该项的名称;一个图层的图标加载后在组织结构上显示该项的图标;一个图层的可见性改变之后刷新该项的显示状态,并通知三维视图的可视化域刷新显示数据。涉及专题地图视图的主要操作包括:通过地图驱动单元添加或者更新一个分支/图层;清除所有图层;移除某一个图层;设置当前选择项;取得当前选择项;设置分支/图层的图标,当图层的可见性改变之后引发的事件等。
在三维地图的视图中,活动的专题地图选择器是对一系列专题地图的列表,包含专题、名称等,如图12所示。当地图驱动单元加载一个专题地图时,同时向该活动的专题地图选择器注册;当在活动的专题地图选择器中选择了某个专题地图后会引发当前专题地图改变的事件,并通告“三维视图”重新加载数据并可视化。涉及活动的专题地图选择器的主要操作包括:通过地图驱动单元添加或更新一个专题地图;移除一个专题地图;清除所有的专题地图;设置当前选择项;取得当前选择项等。
本实施例的地图加载装置用于实现前述相应方法实施例中的地图加载方法,并具有相应的方法实施例的有益效果,在此不再赘述。
通常,地图上,尤其是三维地图上,要表达的各种资源(矢量数据、栅格数据)都是通过远程服务器提供的,并且,这样的数据都是海量的,且分布在不同的服务器端。通过本申请提供的地图加载技术方案,实现了三维地图的快速用户响应,尤其是捕捉三维视图上的要素时能够有一个快速的反映,增强了用户体验;并且,为三维在线分析,提供了必要的支撑。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本申请所提供的一种地图加载方法和装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (11)
1.一种地图加载方法,其特征在于,包括:
地图驱动单元收到加载地图的请求,所述请求中包括所请求的地图的数据资源信息;
所述地图驱动单元按照设定规则,对所述数据资源信息进行划分,生成多个子请求;
所述地图驱动单元通过所述多个子请求分别请求所述地图的数据资源,并使用返回的所述数据资源完成所述地图的加载;
其中,所述地图为专题地图,所述专题地图的映射视图包括以下至少之一:图层视图、专题地图视图、活动的专题地图选择器;
在所述地图驱动单元收到加载地图的请求的步骤之前,还包括:
所述地图驱动单元订阅所述专题地图的映射视图的用户操作事件,以获取用户对所述专题地图的映射视图的修改和/或输入;所述地图驱动单元根据所述修改和/或输入生成子请求,由地图驱动单元中的资源加载器根据所述子请求,向服务器异步请求新的数据和/或资源并返回给所述地图驱动单元,和/或,所述地图驱动单元根据所述修改和/或输入,更新所述专题地图的映射视图。
2.根据权利要求1所述的方法,其特征在于,所述地图驱动单元按照设定规则,对所述数据资源信息进行划分,生成多个子请求的步骤包括:
所述地图驱动单元按照数据资源类别,将所述数据资源信息划分为多个不可分割的粒度,每个粒度生成一个子请求。
3.根据权利要求2所述的方法,其特征在于,所述数据资源类别包括以下至少之一:所述地图的组织结构、所述地图的名称、所述地图的图标、所述地图的图层的结构、每个所述图层的名称、每个所述图层的图标。
4.根据权利要求1所述的方法,其特征在于,所述地图为专题地图,所述专题地图的映射视图,包括以下至少之一:图层视图、专题地图视图、活动的专题地图选择器。
5.根据权利要求4所述的方法,其特征在于,在所述地图驱动单元收到加载地图的请求的步骤之前,还包括:
接收用户通过所述图层视图、或所述专题地图视图、或所述活动的专题地图选择器的输入;
根据所述用户的输入,生成不同的所述加载地图的请求。
6.根据权利要求1所述的方法,其特征在于,所述地图驱动单元通过所述多个子请求分别请求所述地图的数据资源的步骤包括:
所述地图驱动单元将所述多个子请求分别发送给资源加载器;
所述资源加载器接收所述地图驱动单元发送的子请求,并向服务器异步请求相应的数据和/或资源,并返回给所述地图驱动单元。
7.根据权利要求6所述的方法,其特征在于,在所述地图驱动单元收到加载地图的请求的步骤之前,还包括:
所述地图驱动单元订阅所述资源加载器的资源加载结束事件,以确定所述资源加载器向所述服务器异步请求相应的数据和/或资源成功或失败后,使用所述资源加载器返回的所述数据和/或资源的方式。
8.根据权利要求6所述的方法,其特征在于,在所述地图驱动单元将所述多个子请求分别发送给资源加载器的步骤之前,还包括:
所述地图驱动单元判断所述多个子请求中,是否有子请求所请求的数据资源已被所述资源加载器返回;
若是,则将除该子请求外的其它子请求发送给所述资源加载器;若否,则将所述多个子请求发送给所述资源加载器。
9.一种地图加载装置,其特征在于,包括地图驱动单元,所述地图驱动单元包括:
接收模块,用于接收加载地图的请求,所述请求中包括所请求的地图的数据资源信息;
划分模块,用于按照设定规则,对所述数据资源信息进行划分,生成多个子请求;
加载模块,用于通过所述多个子请求分别请求所述地图的数据资源,并使用返回的所述数据资源完成所述地图的加载;
其中,所述地图为专题地图,所述专题地图的映射视图包括以下至少之一:图层视图、专题地图视图、活动的专题地图选择器;
所述地图驱动单元订阅所述专题地图的映射视图的用户操作事件,以获取用户对所述专题地图的映射视图的修改和/或输入;所述地图驱动单元根据所述修改和/或输入生成子请求,由地图驱动单元中的资源加载器根据所述子请求,向服务器异步请求新的数据和/或资源并返回给所述地图驱动单元,和/或,所述地图驱动单元根据所述修改和/或输入,更新所述专题地图的映射视图。
10.根据权利要求9所述的装置,其特征在于,所述划分模块包括:
最小粒度模块,用于按照数据资源类别,将所述数据资源信息划分为多个不可分割的粒度,每个粒度生成一个子请求。
11.根据权利要求9所述的装置,其特征在于,所述地图为专题地图,所述专题地图的映射视图包括以下至少之一:图层视图、专题地图视图、活动的专题地图选择器;
所述装置还包括:原请求划分模块,用于在所述接收模块接收加载地图的请求之前,接收用户通过所述图层视图、或所述专题地图视图、或所述活动的专题地图选择器的输入;根据所述用户的输入,生成不同的所述加载地图的请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110343993.9A CN102426596B (zh) | 2011-11-03 | 2011-11-03 | 地图加载方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110343993.9A CN102426596B (zh) | 2011-11-03 | 2011-11-03 | 地图加载方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102426596A CN102426596A (zh) | 2012-04-25 |
CN102426596B true CN102426596B (zh) | 2014-07-30 |
Family
ID=45960576
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110343993.9A Active CN102426596B (zh) | 2011-11-03 | 2011-11-03 | 地图加载方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102426596B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104423783B (zh) * | 2013-09-02 | 2019-03-29 | 联想(北京)有限公司 | 信息传输的方法及电子设备 |
CN103514280B (zh) * | 2013-09-27 | 2017-05-24 | 北京华胜天成科技股份有限公司 | 一种实现地图标签分区域动态添加的方法和装置 |
CN106485789A (zh) * | 2016-09-14 | 2017-03-08 | 乐视控股(北京)有限公司 | 一种3d模型加载方法及其装置 |
CN107766436B (zh) * | 2017-09-20 | 2021-09-21 | 广东省建设信息中心 | 一种地址关联数据处理方法、用户终端和服务器 |
US11492563B2 (en) | 2018-04-28 | 2022-11-08 | Beijing Sanju Environmental Protection & New Materials Co., Ltd | Conversion process for an inferior oil |
CN110647597B (zh) * | 2018-06-11 | 2022-04-08 | 百度在线网络技术(北京)有限公司 | 电子地图的渲染方法和装置 |
CN111562894A (zh) * | 2019-02-14 | 2020-08-21 | 阿里巴巴集团控股有限公司 | 图层显示方法、装置与设备 |
CN112464111A (zh) * | 2019-09-09 | 2021-03-09 | 北京国双科技有限公司 | 一种地图图层的加载方法及装置 |
CN111221588A (zh) * | 2019-11-15 | 2020-06-02 | 北京金和网络股份有限公司 | 地图多分类异步加载及去重方法与装置 |
CN111930873A (zh) * | 2020-09-08 | 2020-11-13 | 蘑菇车联信息科技有限公司 | 一种应用于地图引擎的数据处理方法及相关装置 |
CN112529887B (zh) * | 2020-12-18 | 2024-02-23 | 广东赛诺科技股份有限公司 | 一种基于gis地图数据懒加载方法及*** |
CN113694532B (zh) * | 2021-09-01 | 2023-10-27 | 深圳市乐天堂科技有限公司 | 一种资源管理器中资源复用的方法、***、存储介质以及终端 |
CN116975479A (zh) * | 2022-04-21 | 2023-10-31 | 北京京东振世信息技术有限公司 | 三维地图数据加载和发送方法、装置、电子设备和介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101363734A (zh) * | 2007-08-06 | 2009-02-11 | 北京灵图软件技术有限公司 | 地图数据的分块下载方法及地图数据的分块下载装置 |
WO2010113577A1 (en) * | 2009-03-31 | 2010-10-07 | Aisin Aw Co., Ltd. | Map distribution apparatus, map distribution method, and computer program |
WO2011003232A1 (en) * | 2009-07-07 | 2011-01-13 | Google Inc. | Query parsing for map search |
-
2011
- 2011-11-03 CN CN201110343993.9A patent/CN102426596B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101363734A (zh) * | 2007-08-06 | 2009-02-11 | 北京灵图软件技术有限公司 | 地图数据的分块下载方法及地图数据的分块下载装置 |
WO2010113577A1 (en) * | 2009-03-31 | 2010-10-07 | Aisin Aw Co., Ltd. | Map distribution apparatus, map distribution method, and computer program |
WO2011003232A1 (en) * | 2009-07-07 | 2011-01-13 | Google Inc. | Query parsing for map search |
Also Published As
Publication number | Publication date |
---|---|
CN102426596A (zh) | 2012-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102426596B (zh) | 地图加载方法和装置 | |
Sonbol et al. | EdgeKV: Decentralized, scalable, and consistent storage for the edge | |
CN104461740A (zh) | 一种跨域集群计算资源聚合和分配的方法 | |
CN102523104B (zh) | 一种网络化仿真运行支撑***及方法 | |
US11551382B2 (en) | Efficient refinement of tiles of a HLOD tree | |
CN112463375B (zh) | 一种数据处理的方法和装置 | |
CN104539681A (zh) | 分布式gis加速***和gis服务的处理方法 | |
CN105069010A (zh) | 基于多Agent的资源聚合方法 | |
CN105530306A (zh) | 支持数据应用服务的超融合存储*** | |
CN108074210B (zh) | 一种用于云渲染的对象获取***和方法 | |
CN102523249A (zh) | 基于Web的分布式远程仿真***及仿真方法 | |
CN108073350B (zh) | 一种用于云渲染的对象存储***和方法 | |
CN106055622A (zh) | 一种数据搜索方法及*** | |
CN105357045A (zh) | 一种云平台服务创建方法及装置 | |
CN102779183B (zh) | 数据查询的方法、设备及*** | |
CN103077074A (zh) | 一种三维空间数据并行调度方法和*** | |
CN112236760A (zh) | 一种图数据的更新方法、***、计算机可读存储介质及设备 | |
CN115115344A (zh) | 多学科仿真优化业务服务管理方法及中台*** | |
CN105786447A (zh) | 服务器处理数据的方法、装置及服务器 | |
CN104765644A (zh) | 基于智能体Agent的资源协作演化***及方法 | |
CN109309858B (zh) | 一种互斥图标的显示方法、装置、设备及介质 | |
CN102932389A (zh) | 一种请求处理方法、装置及服务器*** | |
Boukerche et al. | Performance evaluation of data distribution management strategies | |
CN106815318A (zh) | 一种时序数据库的集群化方法及*** | |
Pedrazzoli et al. | Virtual factory framework: key enabler for future manufacturing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |