CN112395375B - 一种地图呈现方法及终端、计算机可读存储介质 - Google Patents
一种地图呈现方法及终端、计算机可读存储介质 Download PDFInfo
- Publication number
- CN112395375B CN112395375B CN201910754851.8A CN201910754851A CN112395375B CN 112395375 B CN112395375 B CN 112395375B CN 201910754851 A CN201910754851 A CN 201910754851A CN 112395375 B CN112395375 B CN 112395375B
- Authority
- CN
- China
- Prior art keywords
- map
- current
- previous
- range
- data
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Remote Sensing (AREA)
- Instructional Devices (AREA)
- Navigation (AREA)
Abstract
本发明实施例公开了一种地图呈现方法及终端、计算机可读存储介质,包括:在前一个地图的显示界面上,接收地图呈现操作;获取与前一个地图对应的前一个视图范围,并根据所述前一个视图范围,以及所述地图呈现操作,确定当前视图范围和与所述当前视图范围对应的预设地图底图;根据所述当前视图范围,确定出待加载数据;对所述待加载数据进行预渲染,得到地图要素;将所述地图要素对应绘制在所述预设地图底图上,得到当前地图并显示。如此,能够仅对当前视图范围所对应的待加载数据进行渲染,减少需要渲染的数据量,并且只需要将经过渲染的少量地图要素存储于内存之中,降低内存消耗,减小对***处理速度的影响,提高实时性。
Description
技术领域
本发明涉及电子地图技术,尤其涉及一种地图呈现方法及终端、计算机可读存储介质。
背景技术
电子地图是指利用利用计算机技术,以数字形式存储和查阅的地图。主流的电子地图呈现技术包括:互联网地图呈现技术和地图引擎技术。互联网地图呈现技术是通过调用互联网地图及其应用程序编程接口(Application Programming Interface,API),通过引入访问的地图入口,在网页前端中绘制呈现互联网地图。地图引擎技术提供了一系列特定底层功能的实现和接口,上层地图应用通过调用地图引擎所提供的功能接口,进而获得处理好的要素图层,完成地图的呈现。
然而,互联网地图呈现技术在前端绘制时,要先将获取到的地图数据存储至前端内存中,此时,需要消耗大量的内存资源,拖慢***处理速度,影响实时性;地图引擎技术在呈现地图时,需要先获得地图数据,再对地图数据进行批量渲染,在渲染结束后地图引擎才将要素图层加载在底图上,以完成地图的呈现,处理时间较长,影响地图加载的实时性。
发明内容
本发明实施例提供一种地图呈现方法及终端、计算机可读存储介质,能够减少需要处理的数据量,提升地图呈现的实时性,提高***整体性能。
本发明的技术方案是这样实现的:
第一方面,本发明实施例提供了一种地图呈现方法,包括:
在前一个地图的显示界面上,接收地图呈现操作;
获取与前一个地图对应的前一个视图范围,并根据所述前一个视图范围,以及所述地图呈现操作,确定当前视图范围和与所述当前视图范围对应的预设地图底图;
根据所述当前视图范围,确定出待加载数据;
对所述待加载数据进行预渲染,得到地图要素;
将所述地图要素对应绘制在所述预设地图底图上,得到当前地图并显示。
在上述方案中,所述获取与前一个地图对应的前一个视图范围,并根据所述前一个视图范围,以及所述地图呈现操作,确定当前视图范围和与所述当前视图范围对应的预设地图底图,包括:
基于所述前一个视图范围,获取前一个视图层级,以及所述前一个视图范围对应的前一个中心位置;
利用所述地图呈现操作,以及所述前一个视图层级,确定当前视图层级,并根据预设的视图层级与加载范围之间的对应关系,确定所述当前视图层级对应的当前加载范围;
根据所述地图呈现操作,和所述前一个中心位置,确定出当前中心位置;
利用所述当前中心位置和所述当前加载范围,确定所述当前视图范围,并获取所述当前视图范围对应的所述预设地图底图。
在上述方案中,所述利用所述地图呈现操作,以及所述前一个视图层级,确定当前视图层级,确定当前视图层级,并根据预设的视图层级与加载范围之间的对应关系,确定所述当前视图层级对应的当前加载范围,包括:
当所述地图呈现操作为缩放操作时,获取所述地图呈现操作的缩放级别;利用所述前一个视图层级,以及所述缩放级别,确定出所述当前视图层级,并根据预设的视图层级与加载范围之间的对应关系,得到所述当前视图层级对应的当前加载范围;
当所述地图呈现操作为拖拽操作时,将所述前一个视图层级,确定为所述当前视图层级,并根据预设的视图层级与加载范围之间的对应关系,得到所述当前视图层级对应的当前加载范围。
在上述方案中,所述根据所述地图呈现操作,和所述前一个中心位置,确定出当前中心位置,包括:
当所述地图呈现操作为缩放操作时,将所述前一个中心位置,确定为所述当前中心位置;
当所述地图呈现操作为拖拽操作时,获取所述地图呈现操作的移动距离;根据所述前一个中心位置,和所述移动距离,确定出所述当前中心位置。
在上述方案中,所述将所述地图要素对应绘制在所述预设地图底图上,得到当前地图并显示,包括:
获取所述地图要素所对应的位置信息;
根据所述位置信息,在所述预设地图底图上确定预加载位置;
将所述地图要素绘制在所述预加载位置上,得到所述当前地图并显示。
在上述方案中,在所述将所述地图要素对应绘制在所述预设地图底图上,得到当前地图并显示之后,所述方法还包括:
获取当前视图层级,并根据视图层级与加载偏移量之间的预设关系,确定出所述当前视图范围的预加载偏移量;
根据所述当前视图范围,以及所述预加载偏移量,确定出预加载视图范围;
根据所述预加载视图范围,获取所述预加载视图范围对应的预加载底图,并从所述地图数据库中,获取所述预加载视图范围对应的预加载数据;
对所述预加载数据进行预渲染,得到预加载要素,并将所述预加载要素,对应绘制在所述预加载底图上。
在上述方案中,所述根据所述当前视图范围,确定出待加载数据,包括:
根据所述当前视图范围,从地图数据库中,获取所述当前视图范围对应的地图数据,作为所述待加载数据;或者,
根据所述当前视图范围,以及所述前一个视图范围,确定出所述待加载数据。
在上述方案中,所述根据所述当前视图范围,以及所述前一个视图范围,确定出所述待加载数据,包括:
获取所述前一个视图范围对应的地图数据,及所述前一个视图范围对应的前一个视图层级,以及所述当前视图范围对应的当前视图层级;
当所述当前视图层级小于所述前一个视图层级时,将所述前一个视图范围对应的地图数据,确定为所述待加载数据;
当所述当前视图层级不小于所述前一个视图层级时,根据所述当前视图范围,从所述地图数据库中获取所述当前视图范围对应的地图数据;以及根据所述当前视图范围对应的地图数据,和所述前一个视图范围对应的地图数据,确定出所述待加载数据。
在上述方案中,所述根据所述当前视图范围对应的地图数据,和所述前一个视图范围对应的地图数据,确定出所述待加载数据,包括:
将所述前一个视图范围对应的地图数据,与所述当前视图范围对应的地图数据求交集,得到交集地图数据;
从所述当前视图范围对应的地图数据中,除去所述交集地图数据,将剩余的地图数据,作为所述待加载数据。
在上述方案中,当所述前一个地图的显示界面为初始化地图的显示界面时,在所述在前一个地图的显示界面上,接收地图呈现操作之前,所述还包括:
获取预设初始化地图底图和预设初始化视图范围,并根据所述预设初始化视图范围,从地图数据库中获取初始化加载数据;
对所述初始化加载数据进行预渲染,得到初始化要素;
将所述初始化要素对应绘制在所述预设初始化地图底图上,得到初始化地图并显示。
第二方面,本发明实施例提供了一种终端,包括:
接收模块,用于在前一个地图的显示界面上,接收地图呈现操作;
获取模块,用于获取与前一个地图对应的前一个视图范围;
确定模块,用于根据所述前一个视图范围,以及所述地图呈现操作,确定当前视图范围和与所述当前视图范围对应的预设地图底图;根据所述当前视图范围,确定出待加载数据;
处理模块,用于对所述待加载数据进行预渲染,得到地图要素;以及将所述地图要素绘制在所限预设地图底图上,得到当前地图;
显示模块,用于显示所述当前地图。
第三方面,本发明实施例还提供了一种终端,包括:存储器及处理器;
所述存储器,用于存储可执行地图呈现指令;
所述处理器,用于执行所述存储器中存储的可执行地图呈现指令,实现如上述第一方面任一项所述的方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其特征在于,存储有可执行地图呈现指令,用于引起处理器执行时,实现上述第一方面任一项所述的方法。
采用上述实现方式,能够在地图呈现过程中,根据当前视图范围来确定出所要加载的待加载数据,然后仅对待加载数据进行预渲染,减少了需要渲染的数据量,加快了渲染处理的速度,在得到经过预渲染的地图要素之后,只需要将经过渲染的少量地图要素存储在内存之中,降低内存消耗,减小对***处理速度的影响,提高了地图呈现的实时性。
附图说明
图1为本发明实施例提供的一种地图呈现方法的流程图一;
图2为本发明实施例提供的一种地图呈现方法的示例图;
图3为本发明实施例提供的一种地图呈现方法的流程图二;
图4为本发明实施例提供的一种地图呈现方法的流程图三;
图5为本发明实施例提供的一种地图呈现方法的流程图四;
图6为本发明实施例提供的一种地图呈现方法的流程图五;
图7为本发明实施例提供的一种地图呈现方法的流程图六;
图8为本发明实施例提供的一种地图呈现方法的流程图七;
图9为本发明实施例提供的一种地图呈现方法的流程图八;
图10为本发明实施例提供的一种地图呈现方法的流程图九;
图11为本发明实施例提供的一种地图呈现方法的过程示意图;
图12为本发明实施例提供的一种地图呈现方法的流程图十;
图13为本发明实施例提供的一种终端的结构示意图;
图14为本发明实施例提供的一种终端的组成结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
电子地图是利用计算机技术,以数字的形式存储和查阅的地图。主流的电子地图技术有:互联网地图呈现技术和地图引擎技术。
互联网地图呈现技术一般是通过调用互联网地图及其应用编程接口(Application Programming Interface,API)引入地图入口,在使用地图时通过地图入口,调用后台的地图数据,然后前端对地图数据进行绘制渲染,以进行地图的呈现。互联网地图可以提供丰富的地图服务模式,例如矢量地图、卫星地图、三维地图等服务模式,通过丰富的地图服务模式,互联网地图能够适用于各种不同的应用场景之中。由于采用了不同的投影技术、坐标系以及经纬度编码方式,不同的互联网地图之间存在着差异,例如,百度地图、谷歌地图、天地图以及和地图等都为常见的互联网地图,然而在实际使用时,对于同一地理区域,这些地图在显示细节上,可能会存在一些差异。互联网地图在存储地图数据时,是基于对象关系模型,在数据库中按照面向对象的方式存储空间坐标数据和属性数据,空间坐标数据和属性数据共同构成了地图数据。由于互联网地图在呈现时,前端先从数据库中获取到地图数据,即获取到空间坐标数据,及空间坐标数据对应的属性数据,并将地图数据存储到前端的内存中,然后前端再对地图数据进行渲染并绘制,此时,会消耗较多的前端内存,拖慢***的处理速度,影响地图呈现的实时性。
地图引擎技术提供了一系列特定功能的实现和接口,利用这些实现和接口,可以在地图引擎的上层构建具体的地图应用。地图引擎技术所提供的要素服务,能够预先对地图数据进行处理,并将处理后的数据存储在特定的数据库中,这样,地图数据中的点数据、线数据以及面数据,都能以要素的形式存在,当前端将地图数据加载在底图上时,是调用已经处理好的要素进行加载,如此,能够减少前端逐个渲染绘制地图数据的时间。同时,地图引擎技术不仅自身携带有基本的地图底图,还提供了第三方地图底图的接入方案,方便上层应用的开发。虽然地图引擎技术在地图呈现上具有一定的优势,然而,在具体呈现地图的过程中,地图引擎需要先获得地图数据,然后再对获得的所有的地图数据进行批量渲染,在渲染结束后将要素图层绘制在地图上,以完成地图的呈现,此时,当需要渲染的数据较多时,必然会使得处理时间增加,影响地图加载的实时性。
基于上述两种地图呈现技术所存在的问题,本发明实施例的基本思想是在地图呈现时,尽可能地减少需要渲染的地图数据量,以提高实时性,同时,前端在绘制时,只需要在内存中存储少量的已经渲染过的要素,降低对***处理速度的影响,进一步提高实时性。
实施例一
基于上述本发明实施例的思想,本发明实施例提供一种地图呈现方法,该方法可以应用于地图引擎之上,参见图1,该方法可以包括:
S101、在前一个地图的显示界面上,接收地图呈现操作。
本发明实施例提供的一种地图呈现方法是在终端上呈现电子地图的场景下实现的。在本发明实施例中,终端会在其显示界面上,显示前一个地图,当用户在前一个地图的显示界面上,进行地图呈现操作时,表明终端需要改变地图的显示范围,即将前一个地图,改变为当前地图,此时,终端会接收该地图呈现操作,并根据前一个地图,以及所接收到的地图呈现操作,来确定当前视图范围。
本发明实施例中的前一个地图的显示界面,指的是接收到地图呈现操作之前,在终端上所显示的最后一个地图显示界面。示例性的,当地图显示终端在当前时刻接收到地图呈现操作时,前一个地图是指在当前时刻之前,终端所显示的最后一个地图。
需要说明的是,由于每接收到一次地图呈现操作,都会触发终端改变地图的视图范围,因而,在终端上所显示的最后一个地图显示界面,可以是在接收当前时刻的地图呈现操作之前,由之前的地图呈现操作所触发显示的最后一个地图界面,也可以是还未接收到任何地图呈现操作时,在显示界面上所显示的初始地图界面。
需要说明的是,本发明实施例中,视图范围指的是在终端上,所要显示的地图的经纬度范围。
本发明实施例中,地图呈现操作指的是能够触发改变地图呈现范围的操作。可选的,地图呈现操作可以是拖动操作,也可以是缩放等操作。
需要说明的是,本发明实施例中的终端,可以是智能移动终端、iPad、个人电脑等具有接收地图呈现操作功能,以及显示功能的终端,本发明实施例在此不作限定。
可选的,本发明实施例中的终端,可以通过触摸屏接收地图呈现操作,也可以通过鼠标、键盘等外部设备接收地图呈现操作。
S102、获取与前一个地图对应的前一个视图范围,并根据前一个视图范围,以及地图呈现操作,确定当前视图范围和与当前视图范围对应的预设地图底图。
终端在接收到地图呈现操作之后,便会获取与前一个地图对应的前一个视图范围,并根据所获得的前一个视图范围,以及地图呈现操作,来确定出当前视图范围和当前视图范围对应的预设地图底图,以便于后续终端根据当前视图范围确定待加载数据。
需要说明的是,本发明实施例中,前一个视图范围,是指在终端的显示界面上,所显示的前一个地图的经纬度范围。
终端在获得前一个视图范围之后,即获得在显示界面上所显示的前一个地图的经纬度范围之后,终端便可以根据前一个地图经纬度范围,以及地图呈现操作来确定当前视图范围。需要说明的是,当前视图范围,是指在当前时刻,由地图呈现操作触发的,所要呈现的当前地图的经纬度范围。
具体的,终端可以基于前一个视图范围,获取前一个视图层级,以及前一个视图范围对应的前一个中心位置;利用地图呈现操作,以及前一个视图层级,确定当前视图层级,并根据预设的视图层级与加载范围之间的对应关系,确定当前视图层级对应的当前加载范围;根据地图呈现操作,和前一个中心位置,确定出当前中心位置;利用当前中心位置和当前加载范围,确定当前视图范围,并获取当前视图范围对应的预设地图底图。
需要说明的是,本发明实施例中的预设地图底图,指的是用来显示基本地理信息的图层。其中,基本地理信息指的是地形、地貌、水文分布,以及建筑物形状等信息。
示例性的,当终端需要呈现某城市的地图时,在终端的显示界面上,仅显示关于街道网络分布、建筑物形状、以及在城市中的河流分布等信息的图层,为所要呈现的地图的底图。
可选的,预设地图底图可以是预先存储于终端中的,也可以是终端从第三方地图底图中所获取到的,本发明实施例在此不作具体限定。
示例性的,预设地图底图,可以为终端从和地图中所获取到的地图底图。
S103、根据当前视图范围,确定出待加载数据。
终端在确定出当前视图范围,即所要呈现的地图的经纬度范围之后,终端就能够根据该经纬度范围,确定出待加载数据,之后,终端就可以对待加载数据进行处理了。
可选的,本发明实施例中,终端在确定待加载数据时,可以根据当前视图范围,从地图数据库中,获取当前视图范围对应的地图数据,作为待加载数据;或者,根据当前视图范围,以及前一个视图范围,确定出待加载数据。
需要说明的是,地图数据指的是按照面向对象的方式,所存储的空间坐标数据和属性数据。其中,空间坐标数据为经纬度坐标,属性数据为存储属性信息的数据,可以用于表明数据类别,以及存储数据名称等。例如,当在某个地理位置上存在一个停车场时,空间坐标数据为该地理位置的经纬度坐标,属性数据为表明该地理位置为停车场的类别信息,以及所存储的停车场名称。
由于当每一个地图数据在存储时,都会具有表明地理位置的空间坐标数据,以及与该空间坐标数据对应的属性数据,因此,终端在从地图数据库中获取地图数据时,可以根据所要呈现的地图的经纬度范围,来从地图数据库中获取该经纬度范围内的属性数据。
可选的,本发明实施例中的地图数据库,可以是国家基础地理信息数据库,也可以是其他能够达到相同目的的数据库,本发明实施例在此不作具体限定。
S104、对待加载数据进行预渲染,得到地图要素。
由于终端所获得的待加载数据,是指空间坐标数据,以及空间坐标数据对应的属性数据,也即,终端获得了某个经纬度坐标点及其所对应的属性数据,然而,地图在呈现时,不同类别的地图数据需要用不同的符号进行显示,并且,数据名称也需要按照特定格式进行显示,因此,终端在得到待加载数据之后,需要对待加载数据进行预渲染,并将预渲染后的数据,作为地图要素。
需要说明的是,本发明实施例中的终端,是应用于地图引擎之上的,因而,终端在对待加载数据进行预渲染时,可以调用地图引擎来对待加载数据进行预渲染。
可选的,本发明实施例中,预渲染可以指将所获得的所有待加载数据,根据属性数据进行类别划分,对相同类别的数据,将其渲染为统一的符号,使地图显示更加直观、美观;预渲染还可以指将所获得的所有待加载数据,对其所存储的数据名称,按照相同的格式进行渲染,使地图显示更加美观。
可选的,本发明实施例中的地图引擎,可以为Arc地理信息***(Arc GeographicInformation System,ArcGIS),也可以为其他能够达到相同目标的地图引擎,本发明实施例在此不作限制。
需要说明的是,在本发明实施例中,终端在对待加载数据进行预渲染后,便会得到地图要素。由于待加载数据中具有表明地理位置的空间坐标数据,因而,对待加载数据进行预渲染之后所得到的地图要素,也应当具有表明地理位置的空间坐标数据,即表明地理位置的经纬度坐标,便于后续地图的绘制。
S105、将地图要素对应绘制在预设地图底图上,得到当前地图并显示。
在得到地图要素之后,终端会根据地图要素中,用于表明地理位置的经纬度坐标,将地图要素对应绘制在预设地图底图上,得到当前地图,并将当前地图显示在终端的显示界面上。
具体的,终端可以获取地图要素所对应的位置信息;根据位置信息,在预设地图底图上确定预加载位置;将地图要素绘制在预加载位置上,得到当前地图并显示。
需要说明的是,由于地图要素中具有表明地理位置的经纬度坐标,终端在对应绘制时,会根据地图要素的经纬度坐标,将地图要素绘制在预设地图底图上的相应坐标处,以完成地图的绘制,得到当前地图并显示。
示例性的,本发明实施例提供了给出一个地图呈现方法的示例,如图2所示。在该示例中,终端为个人电脑,用户在个人电脑上,利用鼠标等外设,在前一个地图的显示界面上接收地图呈现操作,当接收到地图呈现操作后,终端会根据前一个地图对应的前一个视图范围,以及地图呈现操作,确定出当前视图范围以及当前视图范围对应的预设地图底图,在图2中,预设地图底图是在和地图获得的。终端根据当前视图范围,即所要呈现的地图的经纬度范围,向地图数据库发送数据请求,并接收地图数据库的返回数据,作为待加载数据。在得到待加载数据之后,终端调用ArcGIS引擎,对待加载数据进行数据渲染,在得到地图要素之后,终端将所得到的地图要素对应绘制在从和地图中得到的预设地图底图上,完成地图绘制,得到当前地图并显示。
在本发明实施例中,终端在地图呈现过程中,能够根据当前视图范围来确定出所要加载的待加载数据,然后,终端只需要对待加载数据进行预渲染,减少了需要渲染的数据量,加快了渲染的处理速度,并且,在经过预渲染得到地图要素之后,终端只需要将经过渲染的少量地图要素存储在内存中,降低了内存的消耗,减小因内存消耗对***处理速度的影响,提高了地图呈现的实时性。
实施例二
基于与实施例一的同一发明构思,参见图3,在实施例一中获取与前一个地图对应的前一个视图范围,并根据前一个视图范围,以及地图呈现操作,确定当前视图范围和与当前视图范围对应的预设地图底图,即实施例一中S102的具体实现过程,可以包括:S1021-S1024,如下:
S1021、基于前一个视图范围,获取前一个视图层级,以及前一个视图范围对应的前一个中心位置。
由于终端在前一个地图在显示之后,可以将前一个地图的相关内容缓存至终端之中,因而,终端能够在自身的存储空间中,获取到与前一个地图对应的前一个视图范围,并根据所获得的前一个视图范围,获取前一个视图范围对应的前一个视图层级,以及前一个视图范围对应的中心位置,即前一个中心位置,之后,终端就可以根据所获得的前一个视图层级、前一个中心位置,以及地图呈现操作,确定出当前视图层级对应的当前加载范围,以及当前中心位置。
本发明实施例中,前一个视图层级指的是前一个地图在显示时比例尺的级别,前一个视图范围对应的前一个中心位置,指的是位于前一个视图范围中心的经纬度坐标。
需要说明的是,视图层级越大,比例尺的级别越大,比例尺也就越大,在同一显示界面上,所能加载的地图经纬度范围越小,地图显示的越精细;视图层级越小,比例尺的级别越小,比例尺也越小,在同一显示界面上,所能加载的地图经纬度范围越大,地图显示的也就越简略。
可选的,本发明实施例中可将视图层级分为20级,分别与不同的比例尺级别对应,也可以根据实际情况按照其他方法为视图层级进行分级,本发明实施例在此不作限制。
S1022、利用地图呈现操作,以及前一个视图层级,确定当前视图层级,并根据预设的视图层级与加载范围之间的对应关系,确定当前视图层级对应的当前加载范围。
由于不同的视图层级,对应着不同的地图经纬度加载范围,因此,终端在确定当前视图范围之前,必须先确定出当前视图层级。终端在获取到前一个视图层级之后,就需要利用接收到的地图呈现操作,以及获取到的前一个视图层级,来确定出当前视图层级,并根据预设的视图层级与加载范围之间的对应关系,确定出当前视图层级所对应的当前加载范围。
需要说明的是,由于在本发明实施例中,地图呈现操作可以是拖拽操作,也可以是缩放操作,然而,地图呈现操作的不同,会使得当前加载范围的确定方式不同,因此,需要根据地图呈现操作具体是拖拽操作,还是缩放操作,来分别确定对应的当前加载范围。
具体的,参见图4,本发明实施例中利用地图呈现操作,以及前一个视图层级,确定当前视图层级,并根据预设的视图层级与加载范围之间的对应关系,确定当前视图层级对应的当前加载范围,可以根据S1022a-S1022b来确定,如下:
S1022a、当地图呈现操作为缩放操作时,获取地图呈现操作的缩放级别;利用前一个视图层级,以及缩放级别,确定出当前视图层级,并根据预设的视图层级与加载范围之间的对应关系,得到当前视图层级对应的当前加载范围。
当终端接收到地图呈现操作,并判断出地图呈现操作为缩放操作时,就可以根据缩放级别,以及前一个视图层级,来确定出当前视图层级。当终端确定出当前视图层级之后,便可以从视图层级与加载范围之间的对应关系中,确定出当前视图层级所对应的加载范围,即当前加载范围。
需要说明的是,本发明实施例中,终端可以根据触摸屏上的手指接触点的个数是否为2个,也可以根据鼠标是否为利用滚***作,来判断地图呈现操作是否为缩放操作。当然,还可以使用其他方式,来判断地图呈现操作是否为缩放操作,本发明实施例在此不作限制。
本发明实施例中,缩放级别指的是由缩放操作所确定出的,显示界面中的显示内容放大、或是缩小的倍数。
示例性的,当终端接收到地图呈现操作,并判断出在终端的触摸屏上,具有2个手指接触点时,将该地图呈现操作判定为缩放操作,此时,缩放级别可以由缩放操作开始时触摸屏上2个手指接触点之间的距离,与缩放操作结束时触摸屏上2个手指接触点之间的距离的比值,作为缩放级别;还可以根据鼠标滚轮向前滚动的距离,或是向后滚动的距离,来确定出缩放级别。
需要说明的是,当前视图层级,指的是当前地图所应当具有的比例尺级别。由于终端已经获得了前一个视图层级,即前一个地图在显示时比例尺的级别,以及缩放级别,即放大、或是缩小的倍数,由此,终端可以将前一个视图层级,与缩放级别相乘,确定出当前视图层级。
本发明实施例中,预设的视图层级与加载范围之间的对应关系,可以根据实际需求进行设置,并预先存储在终端之中。
需要说明的是,当前加载范围指的是在地图呈现时,在显示界面上所能加载的经纬度区间范围,表明从位于显示界面的中心的经纬度坐标点开始,经、纬度各自所能加载的范围。
S1022b、当地图呈现操作为拖拽操作时,将前一个视图层级,确定为当前视图层级,并根据预设的视图层级与加载范围之间的对应关系,得到当前视图层级对应的当前加载范围。
当终端接收到地图呈现操作,并判断出该地图呈现操作为拖拽操作时,由于拖拽操作只是拖动视图窗口移动,并不涉及显示内容的放大或缩小,因而,终端会直接将前一个视图层级,作为当前视图层级,然后利用当前视图层级,以及预设的视图层级与加载范围之间的对应关系,得到当前加载范围。
可选的,本发明实施例中,终端可以根据触摸屏上的手指接触点的个数是否为1个,也可以根据鼠标是否为利用按键进行拖动操作,来判断所接收到的地图呈现操作是否为拖拽操作,当然,还可以根据其他方式,来判断地图呈现操作是否为拖拽操作,本发明实施例在此不作具体限定。
示例性的,当地图呈现操作接收到地图呈现操作时,且判断出在终端的触摸屏上,具有1个手指接触点时,终端将该地图呈现操作判定为拖拽操作,并直接将前一个视图层级,确定为当前视图层级。
至此,终端便完成了利用地图呈现操作,以及前一个视图层级来确定当前加载范围的过程。
S1023、根据地图呈现操作,和前一个中心位置,确定出当前中心位置。
在确定出加载范围之后,终端还必须要知晓视图范围的中心位置,才能确定出视图范围。因而,终端需要根据地图呈现操作,以及前一个中心位置,来确定出当前视图范围的中心所处的位置,即当前中心位置。
需要说明的是,地图呈现操作可以是拖拽操作,也可以是缩放操作,然而,不同的地图呈现操作,会为当前中心位置带来不同的影响,因而,需要根据地图呈现操作具体是拖拽操作,还是缩放操作,来分别确定对应的当前中心位置。
具体的,参见图5,本发明实施例中根据地图呈现操作,和前一个中心位置,确定出当前中心位置,可以根据S1023a-S1023b来确定,如下:
S1023a、当地图呈现操作为缩放操作时,将前一个中心位置,确定为当前中心位置。
由于缩放操作导致的是显示内容的放大或缩小,而不会导致视图窗口中心位置的移动,因此,当终端接收到地图呈现操作时,且判断出该地图呈现操作为缩放操作时,会直接将前一个中心位置,确定为当前中心位置。
需要说明的是,由于前一个中心位置,指的是位于前一个视图范围中心的经纬度坐标,因此,由前一个中心位置所确定出的当前中心位置,是指位于当前视图范围中心的经纬度坐标。
S1023b、当地图呈现操作为拖拽操作时,获取地图呈现操作的移动距离;根据前一个中心位置,和移动距离,确定出当前中心位置。
终端在接收到地图呈现操作,且判断出该地图呈现操作为拖拽操作时,需要获取该地图呈现操作的移动距离,即拖拽操作所移动的距离,并将前一个中心位置与移动距离进行求和,将所得到的求和结果,作为当前中心位置。
本发明实施例中,移动距离指的是由拖拽操作所触发的,前一个中心位置所偏移的经纬度距离。
需要说明的是,由于在拖拽操作时,终端能够获得拖拽操作在显示界面所移动的像素距离,而地图在显示界面呈现时,地图的经纬度与显示界面的像素存在着对应关系,因此,终端在获得了拖拽操作所移动的像素距离之后,必然能够根据该对应关系,确定出前一个中心位置所偏移的经纬度距离。
至此,终端便完成了根据地图呈现操作,和前一个中心位置,确定出当前中心位置的过程。
S1024、利用当前中心位置和当前加载范围,确定当前视图范围,并获取当前视图范围对应的预设地图底图。
终端在获得了当前中心位置和当前加载范围之后,就能够根据当前中心位置,以及当前加载范围,确定出当前视图范围,即所要显示的当前地图的经纬度范围,并根据该经纬度范围,获取当前视图范围所对应的预设地图底图。
在本发明实施例中,终端能够获取前一个视图层级,和前一个视图范围对应的前一个中心位置,然后利用前一个视图层级与地图呈现操作,确定当前视图层级,进而确定出当前加载范围,并且利用前一个中心位置,以及地图呈现操作,确定出当前中心位置,再由当前中心位置,以及当前加载范围确定出当前视图范围,如此,就可以根据当前视图范围获得待加载数据,减少了需要渲染的数据量,加快了渲染处理的速度。
在本发明的一些实施例中,在实施例一中将地图要素对应绘制在预设地图底图上,得到当前地图并显示,即实施例一中的S105的具体实现过程,如图6所示,可以包括:S1051-S1053,如下:
S1051、获取地图要素所对应的位置信息。
由于经过预渲染后所得到的地图要素中,具有表明地理位置的经纬度坐标,因而,终端能够在地图要素中,获取到表明该地图要素的地理位置的经纬度坐标信息,作为位置信息,以便于终端在预设地图底图上确定出预加载位置。
需要说明的是,在获取地图要素所对应的位置信息时,是对所有的地图要素的经纬度坐标信息,都进行获取。
S1052、根据位置信息,在预设地图底图上确定预加载位置。
终端在获得地图要素对应的位置信息之后,还需要在预设地图底图上确定出用于加载该地图要素的位置,即预加载位置,只有在预设地图底图上,确定出预加载位置之后,终端才能对应绘制地图要素。
需要说明的是,本发明实施例中,在获得所有的地图要素对应的位置信息之后,终端能够在预设地图底图上,寻找与每个位置信息相对应的经纬度坐标点,并将该经纬度坐标点,确定为预加载位置。
S1053、将地图要素绘制在预加载位置上,得到当前地图并显示。
在确定出预加载位置之后,终端便能够将地图要素,逐个地绘制在每个地图要素所对应的预加载位置上,当完成对所有的地图要素的绘制之后,终端就得到了当前地图,并在显示界面上显示所得到的当前地图。
在本发明实施例中,终端在绘制地图时,是直接将经过渲染的地图要素对应绘制于预设地图底图之上,使得在地图呈现时,只需要将地图要素存储在内存中,能够降低内存的消耗,减小对***处理速度的影响。
实施例三
基于与实施例一的同一发明构思,基于图1,参见图7,在将地图要素对应绘制在预设地图底图上,得到当前地图并显示之后,即S105之后,所述方法还可以包括:S106-S109,如下:
S106、获取当前视图层级,并根据视图层级与加载偏移量之间的预设关系,确定出当前视图范围的预加载偏移量。
终端在得到当前地图,并将当前地图进行显示之后,还可以获取当前视图范围所对应的当前视图层级,并根据视图层级与加载偏移量之间的预设关系,来确定出当前视图范围的预加载偏移量,如此,终端能够根据所确定的预加载偏移量,在当前视图范围的周围,确定出一个预加载的范围,从而对该范围内的地图数据,进行预加载。
需要说明的是,由于当前视图范围,是由当前加载范围以及当前中心位置确定出的,而当前加载范围,是由根据当前视图层级确定的,因此,在确定出当前视图层级之后,终端是必然能够获取到当前视图范围所对应的当前视图层级的。
可选的,本发明实施例中的视图层级与预加载偏移量之间的预设关系,可以是根据实际需求进行设定的,本发明实施例在此不作具体限定。
需要说明的是,本发明实施例中的预加载偏移量,用于表明从当前视图范围开始,向当前视图范围的***所能多加载的经纬度值。终端在确定出预加载偏移量之后,就能够根据预加载偏移量,以及当前视图范围,就能够确定预加载视图范围了。
S107、根据当前视图范围,以及预加载偏移量,确定出预加载视图范围。
终端确定预加载视图范围,是指在当前视图范围,即当前地图的经纬度范围的基础上,向当前视图范围的***,延伸了预加载偏移量,得到一个将当前视图范围包围在内的经纬度范围,由于在该经纬度范围之内,包含了已经处理过的当前地图,因此,预加载视图范围,指的是从当前地图的经纬度范围处开始,至所得到的将当前视图范围包围在内的经纬度范围处结束的区域。
示例性的,当当前视图范围为(xmin,ymin,xmax,ymax),预加载偏移量为key时,终端能够得到一个将当前视图范围包围在内的经纬度范围(xmin-key,ymin-key,xmax+key,ymax+key),而预加载视图范围,则指的是,从(xmin,ymin,xmax,ymax)处开始,至(xmin-key,ymin-key,xmax+key,ymax+key)处结束的环形区域。
S108、根据预加载视图范围,获取预加载视图范围对应的预加载底图,并从地图数据库中,获取预加载视图范围对应的预加载数据。
终端在确定出预加载视图范围之后,便能够获取预加载视图范围所对应的预加载底图,并根据预加载视图范围所对应的经纬度信息,从地图数据库中获取预加载视图范围对应的地图数据,并将所获得的地图数据,作为预加载数据。
S109、对预加载数据进行预渲染,得到预加载要素,并将预加载要素,对应绘制在预加载底图上。
在获得预加载数据之后,终端便会对预加载数据进行预渲染,得到预加载要素,并从所有经过渲染的预加载要素中,得到表明地理位置的经纬度坐标,即得到所有预加载要素对应的位置信息,然后根据预加载要素的位置信息,在预加载底图上寻找相对应的经纬度坐标,并将预加载要素,对应绘制在预加载地图底图上,完成地图的预加载。
需要说明的是,在将预加载要素对应绘制在预加载底图上之后便完成了预加载处理,绘制好的预加载地图并不进行显示。如此,终端能够对当前视图范围周围的地图进行预加载,当再次接收到地图呈现操作,即当前视图范围发生改变时,这部分已经处理过的预加载地图,就可以直接进行显示。
本发明实施例中,终端在完成对当前地图的绘制和显示之后,还能够对预加载视图范围内的地图进行预加载,使得当终端再次接收到地图呈现操作,地图的视图范围发生改变时,能够直接对预加载地图进行呈现,且只需要处理除预加载数据之外的地图数据,减少需要处理的数据量,进而减少了处理时间,提高实时性。
在本发明的在一些实施例中,实施例一中根据当前视图范围,确定出待加载数据,即实施例一中S103的具体实现过程,参见图8,可以包括:S1031或S1032,如下:
S1031、根据当前视图范围,从地图数据库中,获取当前视图范围对应的地图数据,作为待加载数据。
终端可以直接根据当前视图范围,即所要呈现的地图的经纬度范围,向地图数据库发送数据请求,来获取当前视图范围对应的地图数据,并将此数据,直接确定为待加载数据。此时,表明终端在确定待加载数据时,并未对所获得的地图数据进行去冗余处理,是直接将根据当前视图范围,所获取的所有地图数据作为待加载数据,以便后续对所获得的待加载数据进行预渲染。
S1032、根据当前视图范围,以及前一个视图范围,确定出待加载数据。
无论地图呈现操作是拖拽操作,还是缩放操作,当前视图范围都是在前一个视图范围的基础上变化而来的,因而,在当前地图中,极有可能还包含着前一个地图的内容,对于这部分重复的地图数据,是没有必要再次进行渲染并绘制的,终端只需要对新增的地图数据进行渲染并绘制即可。此时,终端需要根据当前视图范围,以及前一个视图范围,来确定出新增的地图数据,并将新增的地图数据,作为待加载数据。
具体的,参见图9,根据当前视图范围,以及前一个视图范围,确定出待加载数据,可以根据S1032a-S1032c来确定,如下:
S1032a、获取前一个视图范围对应的地图数据,及前一个视图范围对应的前一个视图层级,以及当前视图范围对应的当前视图层级。
终端在根据当前视图范围,以及前一个视图范围来确定待加载数据之前,需要先获取前一个视图范围对应的地图数据、前一个视图范围对应的前一个视图层级,以及当前视图范围对应的当前视图层级,只有获得了上述内容之后,终端会先对前一个视图层级与当前视图层级之间的大小关系进行判断,然后,终端会根据判断结果,来具体确定待加载数据。
需要说明的是,终端在将每一个地图绘制完成后,都会将该地图的视图范围对应的地图数据缓存在内存之中,因此,终端可以在内存之中获取到前一个视图范围对应的地图数据。
S1032b、当当前视图层级小于前一个视图层级时,将前一个视图范围对应的地图数据,确定为待加载数据。
当终端判断出当前视图层级小于前一个视图层级时,表明用户是通过缩放操作将比例尺级别缩小,使地图简略的显示。而地图在简略显示时,只是将原有地图数据的一部分进行显示,没有新增数据,因而,在此时,终端不需要从地图数据库中获取地图数据,只需要将前一个视图范围对应的地图数据,直接确定为待加载数据。
示例性的,将当前视图层级记为n,前一个视图层级记为m,将前一个视图范围对应的地图数据记为数据集合A,当终端判断出n<m时,终端不再向地图数据库发送数据请求,直接将数据集合A作为待加载数据。
S1032c、当当前视图层级不小于前一个视图层级时,根据当前视图范围,从地图数据库中获取当前视图范围对应的地图数据;以及根据当前视图范围对应的地图数据,和前一个视图范围对应的地图数据,确定出待加载数据。
当终端判断出当前视图层级不小于前一个视图层级时,表明用户是通过缩放操作将比例尺级别扩大,使地图更为精细的显示,或是不改变比例尺级别,通过拖拽操作,移动地图的视图范围,而这两种情形,都会涉及到新增数据。此时,终端需要向地图数据库发送数据请求,从地图数据库中获取当前视图范围对应的地图数据,然后根据当前视图范围对应的地图数据,和前一个视图范围对应的地图数据,确定出待加载数据。
进一步地,在本发明实施例中,根据当前视图范围对应的地图数据,和前一个视图范围对应的地图数据,确定出待加载数据,如图10所示,具体包括:S201-S202,如下:
S201、将前一个视图范围对应的地图数据,与当前视图范围对应的地图数据求交集,得到交集地图数据。
终端将从内存中获取的前一个视图范围对应的地图数据,与从数据库中获取到的当前视图范围对应的地图数据求交集,得到交集地图数据,并依据该交集地图数据,进行后续的待加载数据的确定操作。
需要说明的是,交集地图数据用于表征在当前视图范围对应的地图数据中,已经存在的与前一个视图范围对应的地图数据相同的数据部分,即重复数据,这部分重复数据是已经渲染并绘制过的,不需要再作处理。
S202、从当前视图范围对应的地图数据中,除去交集地图数据,将剩余的地图数据,作为待加载数据。
终端在获得交集地图数据之后,从当前视图范围对应的地图数据中,除去交集地图数据,此时,所剩余的地图数据为当前视图范围对应的地图数据中新增的地图数据,终端只需要对这部分新增数据进行渲染并绘制,即进行懒加载,如此,能使得需要渲染的数据量减少,进而减少渲染处理时间。
示例性的,将当前视图范围对应的地图数据记为数据集合B,则交集地图数据可以表示为A∩B,此时,需要渲染的待加载数据则为B-(A∩B)。
示例性的,如图11所示,本发明实施例给出了一种地图呈现方法的过程示意,在前一个地图的显示界面上,接收地图呈现操作,根据前一个地图对应的前一个视图范围,以及地图呈现操作,确定当前视图范围(xmin,ymin,xmax,ymax),终端获取当前视图层级、前一个视图层级以及前一个视图范围对应的地图数据,当判断出当前视图层级不小于前一个视图层级时,终端根据当前视图范围从地图数据库中请求地图数据,将所请求到的当前视图范围对应的地图数据设置为数据集合B,在预加载时,根据当前视图范围确定出预加载偏移量key,进而确定出预加载范围(xmin,ymin,xmax,ymax)至(xmin-key,ymin-key,xmax+key,ymax+key),并预加载(xmin,ymin,xmax,ymax)至(xmin-key,ymin-key,xmax+key,ymax+key)的数据,使终端只需要处理除预加载数据之外的地图数据,提高地图呈现实时性。在懒加载时,根据前一个地图视图范围对应的地图数据,对数据集合B进行减量数据处理,以减少需要渲染处理的数据量,减少处理时间,提高实时性。
在本发明实施例中,终端在当前视图层级小于前一个视图层级时,直接将前一个视图范围对应的地图数据,作为待加载数据,此时,终端不再需要从地图数据库中获取新的数据,只需要对处理后的地图要素直接进行绘制即可,减少渲染所需要的处理时间;在当前视图层级不小于前一个视图层级时,将当前视图范围对应的地图数据中,除去前一个视图范围对应的地图数据相同的地图数据,得到新增地图数据,进一步地减少了需要渲染的数据量,并且,由于需要渲染的数据量减少时,经过渲染所得到的地图要素也会减少,在地图绘制时,只需要将少量的地图要素存储在内存中,降低了内存的消耗,减小了对***处理速度的影响,进而提高了地图呈现的实时性。
实施例四
基于与实施例一的同一发明构思,基于图1,参见图12,当前一个地图的显示界面为初始化地图的显示界面时,实施例一中在前一个地图的显示界面上,接收地图呈现操作之前,即S101之前,还可以包括:S110-S112,如下:
S110、获取预设初始化地图底图和预设初始化视图范围,并根据预设初始化视图范围,从地图数据库中获取初始化加载数据。
当前一个地图的显示界面为初始化地图的显示界面时,终端在前一个地图的显示界面上,接收地图呈现操作之前,需要先确定出初始化地图。具体的,终端可以从自身中获取预设的初始化地图底图,以及初始化视图范围,然后向地图数据库发送数据请求,根据预设初始化视图范围,从地图数据库中获取初始化加载数据。
本发明实施例中,当终端还未接收到任何的地图呈现操作时,表明该终端是首次启动,此时,在终端的显示界面上,所显示的应当是初始化地图,因而,用于接收第一次地图呈现操作的前一个地图的显示界面,为初始化地图的显示界面。
需要说明的是,终端所获取的初始化视图范围,是指预先存储在终端中的,所要绘制的地图的经纬度范围。相应的,终端所获取的预设初始化地图底图,是预先存储在终端中,与预设初始化视图范围相对应的地图底图,更具体的,预设初始化地图底图,是与预设初始化范围具有相同经纬度范围的地图底图。
需要说明的是,由于地图数据均是按照面向对象的方式,所存储的空间坐标数据和属性数据,因而,终端所获得的初始化加载数据,也具有表明地理位置的空间坐标数据,以及空间坐标数据对应的属性数据。
S111、对初始化加载数据进行预渲染,得到初始化要素。
终端在从地图数据库中获取到初始化待加载数据之后,便会对初始化加载数据进行预渲染,得到初始化要素。由于初始化待加载数据具有表明地理位置的空间坐标数据,因而,经过预渲染所得到的初始化要素,也具有表明位置的空间坐标数据,以便于后续将初始化要素绘制在初始化预设地图底图之上。
S112、将初始化要素对应绘制在预设初始化地图底图上,得到初始化地图并显示。
终端在得到初始化要素之后,就能够根据初始化要素中的位置信息,在预设初始化地图底图上,找到对应的加载位置,然后,终端将初始化要素绘制在对应的加载位置上,完成初始化地图的绘制,并将绘制完成的初始化地图,显示在终端的显示界面上。
在本发明实施例中,终端能够根据预先存储的预设初始化视图范围,确定出初始化加载数据,并对所获得的初始化加载数据进行预渲染,得到初始化要素,最后将初始化要素对应绘制在预设的初始化地图底图上,得到初始化地图并显示,如此,终端就能够在初始化地图的显示界面上接收地图呈现操作,从而便于后续的地图呈现处理。
实施例五
基于与实施例一至实施例四的同一发明构思,如图13所示,本发明实施例提供了一种终端1,应用于地图引擎,该终端1可以包括:
接收模块10,用于在前一个地图的显示界面上,接收地图呈现操作;
获取模块11,用于获取与前一个地图对应的前一个视图范围;
确定模块12,用于根据所述前一个视图范围,以及所述地图呈现操作,确定当前视图范围和与所述当前视图范围对应的预设地图底图;根据所述当前视图范围,确定出待加载数据;
处理模块13,用于对所述待加载数据进行预渲染,得到地图要素;以及将所述地图要素绘制在所限预设地图底图上,得到当前地图;
显示模块14,用于显示所述当前地图。
在本发明的一些实施例中,所述获取模块11,具体用于基于所述前一个视图范围,获取前一个视图层级,以及所述前一个视图范围对应的前一个中心位置;获取当前视图范围对应的所述预设地图底图。
所述确定模块12,具体用于利用所述地图呈现操作,以及所述前一个视图层级,确定当前视图层级,并根据预设的视图层级与加载范围之间的对应关系,确定所述当前视图层级对应的当前加载范围;根据所述地图呈现操作,和所述前一个中心位置,确定出当前中心位置;利用所述当前中心位置和所述当前加载范围,确定所述当前视图范围。
在本发明的一些实施例中,所述获取模块11,具体用于当所述地图呈现操作为缩放操作时,获取所述地图呈现操作的缩放级别;
所述确定模块12,具体用于利用所述前一个视图层级,以及所述缩放级别,确定出所述当前视图层级,并根据预设的视图层级与加载范围之间的对应关系,得到所述当前视图层级对应的当前加载范围;以及当所述地图呈现操作为拖拽操作时,将所述前一个视图层级,确定为所述当前视图层级,并根据预设的视图层级与加载范围之间的对应关系,得到所述当前视图层级对应的当前加载范围。
在本发明的一些实施例中,所述确定模块12,具体用于当所述地图呈现操作为缩放操作时,将所述前一个中心位置,确定为所述当前中心位置;根据所述前一个中心位置,和所述移动距离,确定出所述当前中心位置;
所述获取模块11,具体用于当所述地图呈现操作为拖拽操作时,获取所述地图呈现操作的移动距离。
在本发明的一些实施例中,所述获取模块11,具体用于获取所述地图要素所对应的位置信息;
所述确定模块12,具体用于根据所述位置信息,在所述预设地图底图上确定预加载位置;
所述处理模块13,具体用于将所述地图要素绘制在所述预加载位置上,得到所述当前地图;
所述显示模块14,具体用于显示所述当前地图。
在本发明的一些实施例中,所述获取模块11,还用于获取当前视图层级;以及根据所述预加载视图范围,获取所述预加载视图范围对应的预加载底图,并从所述地图数据库中,获取所述预加载视图范围对应的预加载数据;
所述确定模块12,还用于根据所述当前视图范围,以及所述预加载偏移量,确定出预加载视图范围;
所述处理模块13,还用于对所述预加载数据进行预渲染,得到预加载要素,并将所述预加载要素,对应绘制在所述预加载底图上。
在本发明的一些实施例中,所述获取模块11,具体用于根据所述当前视图范围,从地图数据库中,获取所述当前视图范围对应的地图数据,作为所述待加载数据;或者,
所述确定模块12,具体用于根据所述当前视图范围,以及所述前一个视图范围,确定出所述待加载数据。
在本发明的一些实施例中,所述获取模块11,具体用于获取所述前一个视图范围对应的地图数据,及所述前一个视图范围对应的前一个视图层级,以及所述当前视图范围对应的当前视图层级;当所述当前视图层级不小于所述前一个视图层级时,根据所述当前视图范围,从所述地图数据库中获取所述当前视图范围对应的地图数据
所述确定模块12,具体用于当所述当前视图层级小于所述前一个视图层级时,将所述前一个视图范围对应的地图数据,确定为所述待加载数据;以及根据所述当前视图范围对应的地图数据,和所述前一个视图范围对应的地图数据,确定出所述待加载数据。
在本发明的一些实施例中,所述确定模块12,具体用于将所述前一个视图范围对应的地图数据,与所述当前视图范围对应的地图数据求交集,得到交集地图数据;从所述当前视图范围对应的地图数据中,除去所述交集地图数据,将剩余的地图数据,作为所述待加载数据。
在本发明的一些实施例中,所述获取模块11,还用于获取预设初始化地图底图和预设初始化视图范围,并根据所述预设初始化视图范围,从地图数据库中获取初始化加载数据;
所述处理模块13,还用于对所述初始化加载数据进行预渲染,得到初始化要素;以及将所述初始化要素对应绘制在所述预设初始化地图底图上,得到初始化地图;
所述显示模块14,还用于显示所述初始化地图。
实施例六
基于实施例一至实施例四的同一发明构思,图14为本发明实施例提出的一种终端的组成结构示意图,如图14所示,本发明提出的一种终端可以包括处理器01、存储有处理器01可执行指令的存储器02。其中,处理器01用于执行存储器中存储的可执行地图呈现指令,以实现实施例一至实施例四中任一个或多个实施例中的方法。
在本发明的实施例中,上述处理器01可以为特定用途集成电路(ApplicationSpecific Integrated Circuit,ASIC)、数字信号处理器(Digital Signal Processor,DSP)、数字信号处理装置(Digital Signal Processing Device,DSPD)、可编程逻辑装置(ProgRAMmable Logic Device,PLD)、现场可编程门阵列(Field ProgRAMmable GateArray,FPGA)、CPU、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的设备,用于实现上述处理器功能的电子器件还可以为其它,本发明实施例不作具体限定。该终端还包括存储器02,该存储器02可以与处理器01连接,其中,存储器02可能包含高速RAM存储器,也可能还包括非易失性存储器,例如,至少两个磁盘存储器。
在实际应用中,上述存储器02可以是易失性存储器(volatile memory),例如随机存取存储器(Random-Access Memory,RAM);或者非易失性存储器(non-volatile memory),例如只读存储器(Read-Only Memory,ROM),快闪存储器(flash memory),硬盘(Hard DiskDrive,HDD)或固态硬盘(Solid-State Drive,SSD);或者上述种类的存储器的组合,并向处理器01提供指令和数据。
另外,在本实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例提供一种计算机可读存储介质,其上存储有可实现程序,应用于终端中,该程序被处理器执行时实现如实施例一至实施例四中任意一个或多个实施例中的方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的实现流程示意图和/或方框图来描述的。应理解可由计算机程序指令实现流程示意图和/或方框图中的每一流程和/或方框、以及实现流程示意图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (11)
1.一种地图呈现方法,其特征在于,应用于地图引擎,所述方法包括:
在前一个地图的显示界面上,接收地图呈现操作;
获取与前一个地图对应的前一个视图范围,基于所述前一个视图范围,获取前一个视图层级,以及所述前一个视图范围对应的前一个中心位置;所述前一个视图层级为前一个地图在显示时比例尺的级别,所述前一个中心位置为位于前一个视图范围中心的经纬度坐标;
利用所述地图呈现操作以及所述前一个视图层级,确定当前视图层级,并根据预设的视图层级与加载范围之间的对应关系,确定所述当前视图层级对应的当前加载范围;
根据所述地图呈现操作和所述前一个中心位置,确定出当前中心位置;
利用所述当前中心位置和所述当前加载范围,确定当前视图范围,并获取与所述当前视图范围对应的预设地图底图;所述预设地图底图为用于显示基本地理信息的图层;
根据所述当前视图范围,确定出待加载数据;
对所述待加载数据进行预渲染,得到地图要素;
将所述地图要素对应绘制在所述预设地图底图上,得到当前地图并显示;
获取所述当前视图范围所对应的当前视图层级,并根据视图层级与加载偏移量之间的预设关系,确定出所述当前视图范围的预加载偏移量;
根据所述当前视图范围以及所述预加载偏移量,确定出预加载视图范围;
根据所述预加载视图范围,获取所述预加载视图范围对应的预加载底图,并从地图数据库中获取所述预加载视图范围对应的地图数据,并将所述地图数据作为预加载数据;
对所述预加载数据进行预渲染,得到预加载要素,并将所述预加载要素对应绘制在所述预加载底图上。
2.根据权利要求1所述的方法,其特征在于,所述利用所述地图呈现操作,以及所述前一个视图层级,确定当前视图层级,并根据预设的视图层级与加载范围之间的对应关系,确定所述当前视图层级对应的当前加载范围,包括:
当所述地图呈现操作为缩放操作时,获取所述地图呈现操作的缩放级别;利用所述前一个视图层级,以及所述缩放级别,确定出所述当前视图层级,并根据预设的视图层级与加载范围之间的对应关系,得到所述当前视图层级对应的当前加载范围;
当所述地图呈现操作为拖拽操作时,将所述前一个视图层级,确定为所述当前视图层级,并根据预设的视图层级与加载范围之间的对应关系,得到所述当前视图层级对应的当前加载范围。
3.根据权利要求1所述的方法,其特征在于,所述根据所述地图呈现操作,和所述前一个中心位置,确定出当前中心位置,包括:
当所述地图呈现操作为缩放操作时,将所述前一个中心位置,确定为所述当前中心位置;
当所述地图呈现操作为拖拽操作时,获取所述地图呈现操作的移动距离;根据所述前一个中心位置,和所述移动距离,确定出所述当前中心位置。
4.根据权利要求1所述的方法,其特征在于,所述将所述地图要素对应绘制在所述预设地图底图上,得到当前地图并显示,包括:
获取所述地图要素所对应的位置信息;
根据所述位置信息,在所述预设地图底图上确定预加载位置;
将所述地图要素绘制在所述预加载位置上,得到所述当前地图并显示。
5.根据权利要求1所述的方法,其特征在于,所述根据所述当前视图范围,确定出待加载数据,包括:
根据所述当前视图范围,从地图数据库中,获取所述当前视图范围对应的地图数据,作为所述待加载数据;或者,
根据所述当前视图范围,以及所述前一个视图范围,确定出所述待加载数据。
6.根据权利要求5所述的方法,其特征在于,所述根据所述当前视图范围,以及所述前一个视图范围,确定出所述待加载数据,包括:
获取所述前一个视图范围对应的地图数据,及所述前一个视图范围对应的前一个视图层级,以及所述当前视图范围对应的当前视图层级;
当所述当前视图层级小于所述前一个视图层级时,将所述前一个视图范围对应的地图数据,确定为所述待加载数据;
当所述当前视图层级不小于所述前一个视图层级时,根据所述当前视图范围,从所述地图数据库中获取所述当前视图范围对应的地图数据;以及根据所述当前视图范围对应的地图数据,和所述前一个视图范围对应的地图数据,确定出所述待加载数据。
7.根据权利要求6所述的方法,其特征在于,所述根据所述当前视图范围对应的地图数据,和所述前一个视图范围对应的地图数据,确定出所述待加载数据,包括:
将所述前一个视图范围对应的地图数据,与所述当前视图范围对应的地图数据求交集,得到交集地图数据;
从所述当前视图范围对应的地图数据中,除去所述交集地图数据,将剩余的地图数据,作为所述待加载数据。
8.根据权利要求1所述的方法,其特征在于,当所述前一个地图的显示界面为初始化地图的显示界面时,在所述在前一个地图的显示界面上,接收地图呈现操作之前,所述方法还包括:
获取预设初始化地图底图和预设初始化视图范围,并根据所述预设初始化视图范围,从地图数据库中获取初始化加载数据;
对所述初始化加载数据进行预渲染,得到初始化要素;
将所述初始化要素对应绘制在所述预设初始化地图底图上,得到初始化地图并显示。
9.一种终端,其特征在于,所述终端包括:
接收模块,用于在前一个地图的显示界面上,接收地图呈现操作;
获取模块,用于获取与前一个地图对应的前一个视图范围;
确定模块,用于基于所述前一个视图范围,获取前一个视图层级,以及所述前一个视图范围对应的前一个中心位置;所述前一个视图层级为前一个地图在显示时比例尺的级别,所述前一个中心位置为位于前一个视图范围中心的经纬度坐标;利用所述地图呈现操作以及所述前一个视图层级,确定当前视图层级,并根据预设的视图层级与加载范围之间的对应关系,确定所述当前视图层级对应的当前加载范围;根据所述地图呈现操作和所述前一个中心位置,确定出当前中心位置;利用所述当前中心位置和所述当前加载范围,确定当前视图范围,并获取与所述当前视图范围对应的预设地图底图;所述预设地图底图为用于显示基本地理信息的图层;
所述确定模块,还用于根据所述当前视图范围,确定出待加载数据;
处理模块,用于对所述待加载数据进行预渲染,得到地图要素;以及将所述地图要素绘制在所限预设地图底图上,得到当前地图;
显示模块,用于显示所述当前地图;
所述获取模块,还用于获取所述当前视图范围所对应的当前视图层级;
所述确定模块,还用于根据视图层级与加载偏移量之间的预设关系,确定出所述当前视图范围的预加载偏移量;根据所述当前视图范围以及所述预加载偏移量,确定出预加载视图范围;
所述获取模块,还用于根据所述预加载视图范围,获取所述预加载视图范围对应的预加载底图,并从地图数据库中获取所述预加载视图范围对应的地图数据,并将所述地图数据作为预加载数据;
所述处理模块,还用于对所述预加载数据进行预渲染,得到预加载要素,并将所述预加载要素对应绘制在所述预加载底图上。
10.一种终端,其特征在于,所述终端包括:存储器及处理器;
所述存储器,用于存储可执行地图呈现指令;
所述处理器,用于执行所述存储器中存储的可执行地图呈现指令,实现权利要求1-8所述的方法。
11.一种计算机可读存储介质,其特征在于,存储有可执行地图呈现指令,用于引起处理器执行时,实现权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910754851.8A CN112395375B (zh) | 2019-08-15 | 2019-08-15 | 一种地图呈现方法及终端、计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910754851.8A CN112395375B (zh) | 2019-08-15 | 2019-08-15 | 一种地图呈现方法及终端、计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112395375A CN112395375A (zh) | 2021-02-23 |
CN112395375B true CN112395375B (zh) | 2023-08-01 |
Family
ID=74601680
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910754851.8A Active CN112395375B (zh) | 2019-08-15 | 2019-08-15 | 一种地图呈现方法及终端、计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112395375B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114661755A (zh) * | 2022-03-29 | 2022-06-24 | 北京百度网讯科技有限公司 | 显示方式、装置和电子设备 |
CN114969192B (zh) * | 2022-05-12 | 2023-03-17 | 北京骏德时空科技有限公司 | 基于数据管理的地图巡游方法、装置、设备和介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104504106A (zh) * | 2014-12-04 | 2015-04-08 | 中移全通***集成有限公司 | 一种地图覆盖物区域渲染方法及相关设备 |
CN108446066A (zh) * | 2018-03-14 | 2018-08-24 | 杭州骑迹科技有限公司 | 一种地图标记的加载方法和移动终端 |
-
2019
- 2019-08-15 CN CN201910754851.8A patent/CN112395375B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104504106A (zh) * | 2014-12-04 | 2015-04-08 | 中移全通***集成有限公司 | 一种地图覆盖物区域渲染方法及相关设备 |
CN108446066A (zh) * | 2018-03-14 | 2018-08-24 | 杭州骑迹科技有限公司 | 一种地图标记的加载方法和移动终端 |
Also Published As
Publication number | Publication date |
---|---|
CN112395375A (zh) | 2021-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11585675B2 (en) | Map data processing method, computer device and storage medium | |
US9417777B2 (en) | Enabling quick display transitions between indoor and outdoor map data | |
US9110573B2 (en) | Personalized viewports for interactive digital maps | |
US8928657B2 (en) | Progressive disclosure of indoor maps | |
CN110990516B (zh) | 地图数据的处理方法、装置和服务器 | |
CN109977192B (zh) | 无人机瓦片地图快速加载方法、***、设备及存储介质 | |
US9652115B2 (en) | Vertical floor expansion on an interactive digital map | |
US9134886B2 (en) | Providing indoor facility information on a digital map | |
US8749580B1 (en) | System and method of texturing a 3D model from video | |
US9684947B2 (en) | Indicating availability of indoor content on a digital map | |
CN112233240A (zh) | 三维矢量地图的三维矢量数据切片方法、装置及电子设备 | |
CN112395375B (zh) | 一种地图呈现方法及终端、计算机可读存储介质 | |
CN113711166B (zh) | 语义增强的人工现实体验 | |
CN111414104B (zh) | 一种电子地图局部显示方法及装置 | |
JP7086180B2 (ja) | デジタルマップの動的リスタイリング | |
CN115858659A (zh) | 矢量轨迹的显示方法、装置、计算机设备、存储介质 | |
CN111966853B (zh) | 一种遥感影像的管理方法 | |
US20140317516A1 (en) | Address formatting on a digital map | |
CN114238528A (zh) | 一种地图加载方法、装置、电子设备及存储介质 | |
CN107977923A (zh) | 图像处理方法、装置、电子设备及计算机可读存储介质 | |
CN108573513B (zh) | 随机元素生成方法及随机元素生成装置 | |
NL2033044B1 (en) | File Archive for Geographic Raster Data | |
CN111506681A (zh) | 生成路口的方法及装置、渲染方法、介质、终端、服务器 | |
CN117557711B (zh) | 可视域的确定方法、装置、计算机设备、存储介质 | |
CN114155332A (zh) | 地形瓦片数据的渲染方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |