地图加载方法和装置的制作方法

xiaoxiao2020-6-26  20

专利名称:地图加载方法和装置的制作方法
技术领域
本申请涉及地理信息技术领域,特别是涉及一种地图加载方法和装置。
背景技术
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,用于接收加载地图的请求,所述请求中包括所请求的地图的数据资源信息;划分模块50M,用于按照设定规则,对数据资源信息进行划分,生成多个子请求;加载模块 50 ,用于通过多个子请求分别请求地图的数据资源,并使用返回的数据资源完成地图的加载。优选地,划分模块50M包括最小粒度模块50M2,用于按照数据资源类别,将数据资源信息划分为多个不可分割的粒度,每个粒度生成一个子请求。优选地,数据资源类别包括以下至少之一地图的组织结构、地图的名称、地图的图标、地图的图层的结构、每个图层的名称、每个图层的图标。优选地,本实施例中的地图为专题地图,所述专题地图的映射视图包括以下至少之一图层视图、专题地图视图、活动的专题地图选择器。优选地,本实施例的地图加载装置还包括原请求划分模块504,用于在接收模块 5022接收加载地图的请求之前,接收用户通过图层视图、或专题地图视图、或活动的专题地图选择器的输入;根据用户的输入,生成不同的加载地图的请求。优选地,本实施例的地图驱动器502还包括资源加载器50 ,用于接收划分模块50M生成的多个子请求,向服务器异步请求相应的数据和/或资源,并返回给加载模块 5026。优选地,本实施例的地图驱动器502还包括判断模块50210,用于在资源加载器 5028接收划分模块50M生成的多个子请求之前,判断多个子请求中,是否有子请求所请求的数据资源已被资源加载器50 返回;若是,则将除该子请求外的其它子请求发送给资源加载器50 ;若否,则将所述多个子请求发送给资源加载器5(^8。优选地,本实施例的地图驱动器502还包括订阅模块50212,用于订阅资源加载器 5028的资源加载结束事件,以确定资源加载器50 向服务器异步请求相应的数据和/或资源成功或失败后,使用资源加载器50 返回的数据和/或资源的方式;和/或,用于订阅专题地图的映射视图的用户操作事件,以获取用户对专题地图的映射视图的修改和/或输入;地图驱动器502根据所述修改和/或输入生成子请求,由资源加载器50 根据所述子请求,向服务器异步请求新的数据和/或资源并返回给地图驱动器502,和/或,地图驱动器 502根据所述修改和/或输入,更新专题地图的映射视图。本实施例的地图加载装置用于实现前述相应方法实施例中的地图加载方法,并具有相应的方法实施例的有益效果,在此不再赘述。实施例六参照图6,示出了根据本申请实施例六的一种地图加载装置的结构示意图。本实施例以三维专题地图为例,具体说明本实施例的地图加载装置的结构。其它三维地图或平面地图可参照本实施例实现。三维专题地图通常以三维视图的形式呈现给用户。三维视图是直接呈现给用户的可视化界面,是用户与软件进行交互的终端。一个良好的三维视图至少上包括两部分内容 一个地图可视化域,一个对地图要素进行控制的专题地图视图,如图7所示。可视化域显示的要素随三维视图中地图的加载而动态响应;三维视图上显示的要素,是随着活动的专题地图而变化的,也就是说当活动的地图变化了,三维视图上显示的内容会相应的发生变化。本实施例实现上述三维专题地图加载的地图加载装置如图6所示,包括地图驱动器,设置于地图驱动器中的资源加载器,包括图层视图、专题地图视图、和活动的专题地图选择器在内的专题地图的映射视图。其中,地图驱动器是三维专题地图异步加载的核心部件,它维护了图层视图、专题地图视图、和活动的专题地图选择器之间的操作,并持有一个资源加载器进行数据的加载。地图驱动器的工作逻辑如图8所示,包括接收一个三维专题地图的加载请求 (包括加载该三维专题地图全部数据的加载请求,和/或,接收用户通过图层视图、专题地图视图、或活动的专题地图选择器输入,生成的经过粗划分的加载请求);向资源加载器发出异步加载资源数据的请求(通过划分加载请求后的子请求,或者是经过粗划分后的加载请求);同时向专题地图视图和图层视图登记三维专题地图的组织结构,并设置标题、图标等数据;订阅资源加载器的资源加载结束事件,当服务或数据加载成功或失败时,相应地在 “三维视图”上进行行更新;订阅专题地图视图的用户操作事件,当用户修改专题地图设置时,相应地在三维视图可视化域上进行更新,和/或通知资源加载器加载新的资源。其中,资源加载器是异步加载数据(远程资源)的主要桥梁。通常,一个资源加载器为一个地图驱动器(即该资源加载器的所有者)工作。其工作逻辑如图9所示,主要包括接收一个外部添加的任务(由地图驱动器通过请求或子请求派发);该任务负责异步请求资源和数据,如一个专题地图的图层组织结构,远程服务端的一个图标资源等;当资源加载完成后通告“所有者”(即其所属的地图驱动器)相应地更新三维视图的数据。重复上述步骤,直到所有任务(请求或子请求)处理完成。在三维地图的视图中,图层视图是对所有三维专题地图中的图层结构的列表,如图10所示。当地图驱动器加载了一个专题地图之后,会对专题地图中的所有图层在图层视图中登记,如果一个图层在一个以上的专题地图中都存在,则仅登记一次。涉及图层视图的主要的操作包括通过地图驱动器添加或更新某个图层到图层列表中;移除一个或一批图层项;设置某个图层的图标;设置当前选择项;取得当前选择项;当某个图层的可见性改变了之后引发的事件;视图移除某项后引发的事件等。专题地图视图是三维视图中的一个部分,主要是对某个专题地图的可视化。通常, 该专题地图视图采用树形结构组织一个专题地图中的所有图层要素,图层一般包括两种类型“分支”和“单个图层”,“分支”代表“树枝”,“单个图层”代表“树叶”。当地图驱动器设置了一个活动的专题地图时,通过资源加载器动态地将该专题地图的组织(如图11所示) 显示在一个专题地图视图上。如,一个图层加载后在该组织结构上显示该项的名称;一个图层的图标加载后在组织结构上显示该项的图标;一个图层的可见性改变之后刷新该项的显示状态,并通知三维视图的可视化域刷新显示数据。涉及专题地图视图的主要操作包括通过地图驱动器添加或者更新一个分支/图层;清除所有图层;移除某一个图层;设置当前选择项;取得当前选择项;设置分支/图层的图标,当图层的可见性改变之后引发的事件等。在三维地图的视图中,活动的专题地图选择器是对一系列专题地图的列表,包含专题、名称等,如图12所示。当地图驱动器加载一个专题地图时,同时向该活动的专题地图选择器注册;当在活动的专题地图选择器中选择了某个专题地图后会引发当前专题地图改变的事件,并通告“三维视图”重新加载数据并可视化。涉及活动的专题地图选择器的主要操作包括通过地图驱动器添加或更新一个专题地图;移除一个专题地图;清除所有的专题地图;设置当前选择项;取得当前选择项等。本实施例的地图加载装置用于实现前述相应方法实施例中的地图加载方法,并具有相应的方法实施例的有益效果,在此不再赘述。通常,地图上,尤其是三维地图上,要表达的各种资源(矢量数据、栅格数据)都是通过远程服务器提供的,并且,这样的数据都是海量的,且分布在不同的服务器端。通过本申请提供的地图加载技术方案,实现了三维地图的快速用户响应,尤其是捕捉三维视图上的要素时能够有一个快速的反映,增强了用户体验;并且,为三维在线分析,提供了必要的支撑。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。以上对本申请所提供的一种地图加载方法和装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
权利要求
1.一种地图加载方法,其特征在于,包括地图驱动器收到加载地图的请求,所述请求中包括所请求的地图的数据资源信息;所述地图驱动器按照设定规则,对所述数据资源信息进行划分,生成多个子请求;所述地图驱动器通过所述多个子请求分别请求所述地图的数据资源,并使用返回的所述数据资源完成所述地图的加载。
2.根据权利要求1所述的方法,其特征在于,所述地图驱动器按照设定规则,对所述数据资源信息进行划分,生成多个子请求的步骤包括所述地图驱动器按照数据资源类别,将所述数据资源信息划分为多个不可分割的粒度,每个粒度生成一个子请求。
3.根据权利要求2所述的方法,其特征在于,所述数据资源类别包括以下至少之一所述地图的组织结构、所述地图的名称、所述地图的图标、所述地图的图层的结构、每个所述图层的名称、每个所述图层的图标。
4.根据权利要求1所述的方法,其特征在于,所述地图为专题地图,所述专题地图的映射视图,包括以下至少之一图层视图、专题地图视图、活动的专题地图选择器。
5.根据权利要求4所述的方法,其特征在于,在所述地图驱动器收到加载地图的请求的步骤之前,还包括接收用户通过所述图层视图、或所述专题地图视图、或所述活动的专题地图选择器的输入;根据所述用户的输入,生成不同的所述加载地图的请求。
6.根据权利要求1所述的方法,其特征在于,所述地图驱动器通过所述多个子请求分别请求所述地图的数据资源的步骤包括所述地图驱动器将所述多个子请求分别发送给资源加载器;所述资源加载器接收所述地图驱动器发送的子请求,并向服务器异步请求相应的数据和/或资源,并返回给所述地图驱动器。
7.根据权利要求6所述的方法,其特征在于,在所述地图驱动器收到加载地图的请求的步骤之前,还包括所述地图驱动器订阅所述资源加载器的资源加载结束事件,以确定所述资源加载器向所述服务器异步请求相应的数据和/或资源成功或失败后,使用所述资源加载器返回的所述数据和/或资源的方式。
8.根据权利要求6所述的方法,其特征在于,在所述地图驱动器将所述多个子请求分别发送给资源加载器的步骤之前,还包括所述地图驱动器判断所述多个子请求中,是否有子请求所请求的数据资源已被所述资源加载器返回;若是,则将除该子请求外的其它子请求发送给所述资源加载器;若否,则将所述多个子请求发送给所述资源加载器。
9.根据权利要求6所述的方法,其特征在于,所述地图为专题地图,所述专题地图的映射视图包括以下至少之一图层视图、专题地图视图、活动的专题地图选择器;在所述地图驱动器收到加载地图的请求的步骤之前,还包括所述地图驱动器订阅所述专题地图的映射视图的用户操作事件,以获取用户对所述专题地图的映射视图的修改和/或输入;所述地图驱动器根据所述修改和/或输入生成子请求,由所述资源加载器根据所述子请求,向所述服务器异步请求新的数据和/或资源并返回给所述地图驱动器,和/或,所述地图驱动器根据所述修改和/或输入,更新所述专题地图的映射视图。
10.一种地图加载装置,其特征在于,包括地图驱动器,所述地图驱动器包括 接收模块,用于接收加载地图的请求,所述请求中包括所请求的地图的数据资源信息;划分模块,用于按照设定规则,对所述数据资源信息进行划分,生成多个子请求; 加载模块,用于通过所述多个子请求分别请求所述地图的数据资源,并使用返回的所述数据资源完成所述地图的加载。
11.根据权利要求10所述的装置,其特征在于,所述划分模块包括最小粒度模块,用于按照数据资源类别,将所述数据资源信息划分为多个不可分割的粒度,每个粒度生成一个子请求。
12.根据权利要求10所述的装置,其特征在于,所述地图为专题地图,所述专题地图的映射视图包括以下至少之一图层视图、专题地图视图、活动的专题地图选择器;所述装置还包括原请求划分模块,用于在所述接收模块接收加载地图的请求之前,接收用户通过所述图层视图、或所述专题地图视图、或所述活动的专题地图选择器的输入;根据所述用户的输入,生成不同的所述加载地图的请求。
全文摘要
本申请提供了一种地图加载方法和装置,其中,地图加载方法包括地图驱动器收到加载地图的请求,所述请求中包括所请求的地图的数据资源信息;地图驱动器按照设定规则,对所述数据资源信息进行划分,生成多个子请求;地图驱动器通过所述多个子请求分别请求所述地图的数据资源,并使用返回的所述数据资源完成所述地图的加载。通过本申请,实现了三维地图加载快速,减少用户等待时间,提升用户使用体验的效果。
文档编号G09B29/00GK102426596SQ20111034399
公开日2012年4月25日 申请日期2011年11月3日 优先权日2011年11月3日
发明者史明昌, 孙成宝, 曹刚, 李团宏, 李嵩, 黄兆伟 申请人:北京地拓科技发展有限公司

最新回复(0)