CN116416399A - 一种地图生成方法、装置、设备和存储介质 - Google Patents

一种地图生成方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN116416399A
CN116416399A CN202310449887.1A CN202310449887A CN116416399A CN 116416399 A CN116416399 A CN 116416399A CN 202310449887 A CN202310449887 A CN 202310449887A CN 116416399 A CN116416399 A CN 116416399A
Authority
CN
China
Prior art keywords
map
initial
target object
matrix
determining
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.)
Pending
Application number
CN202310449887.1A
Other languages
English (en)
Inventor
周大创
李运伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Hede Aerospace Technology Co ltd
Original Assignee
Beijing Hede Aerospace Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Hede Aerospace Technology Co ltd filed Critical Beijing Hede Aerospace Technology Co ltd
Priority to CN202310449887.1A priority Critical patent/CN116416399A/zh
Publication of CN116416399A publication Critical patent/CN116416399A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Remote Sensing (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明公开了一种地图生成方法、装置、设备和存储介质。该方法包括:获取待绘制地图对应的至少一个目标对象的属性信息;根据所述目标对象的属性信息确定地图图层坐标;根据所述地图图层坐标生成初始地图;获取针对所述初始地图的操作指令对应的转换矩阵;根据所述转换矩阵和所述地图图层坐标生成目标地图。通过本发明的技术方案,能够解决海量数据点在地图上的绘制以及快速显示问题,同时,避免了预生成点云图片,因此当地图底图在不同的地图源之间切换时,只需要切换不同的变换矩阵就可以了,避免了需要为每一种投影切换不同的点云图片集合,从而减轻了后台存储和维护的负担。

Description

一种地图生成方法、装置、设备和存储介质
技术领域
本发明实施例涉及地图技术领域,尤其涉及一种地图生成方法、装置、设备和存储介质。
背景技术
随着物联网的不断发展,数据处理中心需要面临海量物联网采集数据的解析、存储和查询的压力,而订阅用户或者管理员需要对关注的设备进行浏览。卫星物联网采集的数据分布在地球表面一个较大尺度范围内,在地图上叠加显示物联网数据点是一个自然和首要的需求。一般的地图提供了显示数据点的方法,大多以地图API(ApplicationProgramming Interface,应用程序接口)提供的标记点Marker的方式出现。这种标记点一般通过在网页的DOM(Document Object Model,文档对象化模型)树中动态添加修改DOM节点的方式,实现数据点的显示。由于页面上支持的DOM元素数量有限,一般超过1000个Marker,在用户操作网页时即出现明显卡顿,影响用户的交互体验。
一般的解决方法是使用预先生成的图片代替实际对每一个点的渲染。出于考虑到网页DOM的显示效率和人眼对较多数据点的分辨,对于地图上海量数据点的显示,当视点位于远处——也就是较低缩放级别时,将海量数据点以点云图,静态图片的方式展示;当视点位于近处——也即是处于较高缩放级别时,将静态图片隐藏,转而使用地图API提供的标记点Marker方式渲染视点区域内的部分数据点。
这种方式能够部分解决海量数据点的绘制难题,但却存在缺点:随着用户对地图的操作——缩放、平移等,网页需要根据当前地图缩放级别和显示范围向海量数据的存储端请求不同的数据,并替换数据点的显示层,因此需要后端有强大的并发查询能力,也要求前端有强大的显示数据管理能力,能够根据当前显示区域及时更新显示。
发明内容
本发明实施例提供一种地图生成方法、装置、设备和存储介质,以实现能够解决海量数据点在地图上的绘制以及快速显示问题。
根据本发明的一方面,提供了一种地图生成方法,包括:
获取待绘制地图对应的至少一个目标对象的属性信息;
根据所述目标对象的属性信息确定地图图层坐标;
根据所述地图图层坐标生成初始地图;
获取针对所述初始地图的操作指令对应的转换矩阵;
根据所述转换矩阵和所述地图图层坐标生成目标地图。
根据本发明的另一方面,提供了一种地图生成装置,该装置包括:
第一获取模块,用于获取待绘制地图对应的至少一个目标对象的属性信息;
确定模块,用于根据所述目标对象的属性信息确定地图图层坐标;
第一生成模块,用于根据所述地图图层坐标生成初始地图;
第二获取模块,用于获取针对所述初始地图的操作指令对应的转换矩阵;
第二生成模块,用于根据所述转换矩阵和所述地图图层坐标生成目标地图。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的地图生成方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的地图生成方法。
本发明实施例通过获取待绘制地图对应的至少一个目标对象的属性信息,根据目标对象的属性信息确定地图图层坐标,根据地图图层坐标生成初始地图,获取针对初始地图的操作指令对应的转换矩阵,根据转换矩阵和地图图层坐标生成目标地图。通过本发明的技术方案,能够解决海量数据点在地图上的绘制以及快速显示问题,同时,避免了预生成点云图片,因此当地图底图在不同的地图源之间切换时,只需要切换不同的变换矩阵就可以了,避免了需要为每一种投影切换不同的点云图片集合,从而减轻了后台存储和维护的负担。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是本发明实施例中的一种地图生成方法的流程图;
图2是本发明实施例中的一种地图生成装置的结构示意图;
图3是实现本发明实施例的地图生成方法的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1是本发明实施例中的一种地图生成方法的流程图,本实施例可适用于地图生成的情况,该方法可以由本发明实施例中的地图生成装置来执行,该装置可采用软件和/或硬件的方式实现,如图1所示,该方法具体包括如下步骤:
S101、获取待绘制地图对应的至少一个目标对象的属性信息。
在本实施例中,待绘制地图可以是根据物联网卫星采集的海量数据绘制成的地图。
其中,目标对象可以是物联网终端,示例性的,目标对象例如可以是ADSB(Automatic Dependent Surveillance Broadcast,广播式自动相关监视)、AIS(AutomaticIdentification System,船舶自动识别系统)、VDES(VHF Data Exchange System,甚高频数据交换系统)以及DCS(Data Collection System,数据采集系统)等具有物联网数据采集、通讯功能的设备所监视的飞机、船舶或者汽车等终端对象。
其中,目标对象的属性信息可以包括目标对象的经纬度信息、类别信息以及朝向信息中的至少一种。在实际操作过程中,地图覆盖物在海量物联网数据的情况下,常常是单一的一个数据点,例如一系列设备的当前位置,或者通过机载或者星载ADSB接收机接收的飞机位置,或者通过AIS接收机接收的船舶位置。因此,从效率上来看,理想情况下只向GPU传输每一个数据点的位置、朝向、类别等信息即可。
可以知道的是,物联网数据点记录了一个物联网终端(ADSB、AIS、VDES等具有物联网数据采集、通讯功能的设备)的位置(经纬度)、航向、基本状态(正常、故障等)等。地面系统常常需要显示某一时刻(或者最新时刻)的全球范围内的物联网终端情况,这些数据常常达到数百万,乃至数千万量级。本发明实施例可以解决物联网卫星采集的海量数据在地图上绘制的问题,适用于ADSB接收机采集的飞机位置、AIS接收机采集的船舶位置以及DCS采集的终端位置等大量数据点在地图上的快速显示。
具体的,从物联网存储后台获取本次绘制的待绘制地图需要的海量数据点,其中,每一个数据点的信息包含至少一个目标对象的属性信息,例如经纬度信息,以及目标对象可能的类别、大小以及朝向等信息。
S102、根据目标对象的属性信息确定地图图层坐标。
可以知道的是,地图图层是将空间信息按其几何特征及属性划分成的专题数据。在本实施例中,地图图层坐标可以是将目标对象的经纬度信息转换成的地图图层的像素坐标。
在实际操作过程中,一般的地图从经纬度转换到像素坐标时,需要经历至少3个过程:从经纬度进行投影,一般公开的地图采用墨卡托投影(Mercator projection)的方式;然后从投影坐标进行跟地图相关的仿射变换,到合适的坐标范围;最后是跟缩放平移相关的变换。前两个变换对于地图缩放来说是恒定的,给定了一个经纬度,必然得出固定的结果;而后面的缩放平移变换在用户进行每一次地图操作都会得出不同的结果。因此,为了最大限度降低CPU的负担,应该将每一个数据点在CPU中计算到前两层,将前两层计算得到的坐标传入GPU顶点着色器,传输到GPU的顶点缓冲使用VAO(Vertex Array Object,需要WEBGL2支持)管理起来,在每一绘制时将VAO调出来即可。
具体的,根据目标对象的经纬度信息计算地图图层坐标V图层的方式可以是:
V图层=M仿射*M投影*V经纬度
上式中,M仿射和M投影均和地图底图的制作方式相关,查询其地图API(ApplicationProgramming Interface,应用程序接口)即可得到,上述计算地图图层坐标V图层操作在CPU中进行。
S103、根据地图图层坐标生成初始地图。
需要说明的是,初始地图可以是根据目标对象的经纬度信息计算得到的,与地图缩放、平移、窗口大小改变等操作无关的初始生成的地图。
具体的,根据目标对象的经纬度信息计算地图图层坐标V图层,根据地图图层坐标V图层生成初始地图。在实际操作过程中,根据地图图层坐标V图层生成初始地图的操作在GPU中完成。
S104、获取针对初始地图的操作指令对应的转换矩阵。
其中,操作指令可以是用户对初始地图进行地图缩放平移等操作的指令。
需要说明的是,转换矩阵可以是用户对初始地图进行地图缩放平移等操作后,对初始地图进行转换时的计算矩阵。在本实施例中,转换矩阵可以用Mtrans进行表示。
具体的,获取针对初始地图的操作指令在CPU中生成的对应的转换矩阵。在实际操作过程中,用户可以对初始地图进行地图缩放平移等操作,在初始地图每一次缩放平移后,需重新将WEBGL(Web Graphics Library,一种3D绘图协议)图层定位到地图图层的可见范围之内,并计算其上数据点对应的缩放、平移、裁剪矩阵,相乘得到转换矩阵,将转换矩阵作为GLSL着色器(OpenGL Shader Language)的uniform变量传入。
由于物联网要求绘制的数据点数量庞大,因此要求用户在操作地图时,如平移、缩放导致地图底图及其上覆盖图层再次绘制时,尽量减小浏览器的CPU计算量,否则会导致操作卡顿。本发明实施例的计算转换矩阵操作中,绝大多数数据点的变换由GPU并行处理,大大加快了处理速度。
S105、根据转换矩阵和地图图层坐标生成目标地图。
需要说明的是,目标地图可以是用户对初始地图进行地图缩放平移等操作后显示的地图。
具体的,根据地图图层坐标V图层和转换矩阵Mtrans生成目标地图,并显示目标地图。在实际操作过程中,根据转换矩阵Mtrans和地图图层坐标V图层生成目标地图的操作在GPU中完成。
在本发明实施例中,将根据目标对象的经纬度信息得到顶点坐标的三步变换分为两个部分:一个是与地图缩放、平移、窗口大小改变无关;一个是与地图缩放平移操作有关。与地图操作无关的部分,牵涉到墨卡托投影等较复杂的计算过程,在数据点初始化(即根据目标对象的经纬度信息计算地图图层坐标V图层的过程),送入GPU缓存之前一次性完成;而与地图缩放平移操作有关的部分,只剩下简单矩阵相乘,在每一次绘制时将计算后的最终转换矩阵通过uniform送入着色器即可。这样,每次地图绘制时,浏览器的CPU只需进行一次简单的矩阵运算,而不是对每个点都需要重新执行投影、缩放等等一系列运算。
本发明实施例通过获取待绘制地图对应的至少一个目标对象的属性信息,根据目标对象的属性信息确定地图图层坐标,根据地图图层坐标生成初始地图,获取针对初始地图的操作指令对应的转换矩阵,根据转换矩阵和地图图层坐标生成目标地图。通过本发明的技术方案,能够解决海量数据点在地图上的绘制以及快速显示问题,同时,避免了预生成点云图片,因此当地图底图在不同的地图源之间切换时,只需要切换不同的变换矩阵就可以了,避免了需要为每一种投影切换不同的点云图片集合,从而减轻了存储的负担。
在本发明实施例中,采用点精灵对海量数据进行显示。所谓的点精灵即PointSprite,就是将每一个数据点以一个点来进行绘制,而不是一个形状,能够大大减小CPU与GPU的数据传输。特别之处在于,一个顶点也可进行纹理贴出。使用点精灵后,原来是个四顶点构成的一个矩形,现在一个顶点就可以完成了。点精灵一般用于游戏或者仿真时的粒子效果,云雾水流火花的绘制,能够极大提高庞大点数据的绘制效率。
可选的,根据转换矩阵和地图图层坐标生成目标地图,包括:
根据转换矩阵和地图图层坐标确定每个目标对象的顶点坐标。
其中,顶点坐标可以是每个精灵点的顶点的坐标。
具体的,在顶点着色器中,根据转换矩阵Mtrans和地图图层坐标V图层计算每个目标对象的顶点坐标。
根据每个目标对象的顶点坐标生成目标地图。
具体的,基于点精灵技术,根据每个目标对象的顶点坐标在GPU中生成目标地图。
现有技术中,OpenGL的图形由顶点构成,以后利用顶点进行纹理的映射。原来的WEBGL中在屏幕上绘制一个最简单的设备图标,也需要传输一个至少四边形的坐标,使得CPU端必须准备好图标的四角坐标,并传输到GPU端,之后每一次地图缩放,相应地改变矩形的边长。
本发明实施例中,通过点精灵显示每一个数据点,而不是对每一个数据点计算其形状的矩阵四角坐标的方式。因此毋需在每一次地图缩放时重新计算形状坐标,而仅需通过uniform变量重新设置点精灵的大小gl_PointSize即可,大大减轻了浏览器端CPU的负担。如果需要对点精灵设置类型,朝向,一并将点类型(确定点的颜色和图标样式)、旋转角度(确定图标朝向)、点的ID(用于颜色键模式下点的拾取)通过顶点属性在初始时一次性传入GPU着色器。
可选的,操作指令包括平移指令。
其中,平移指令可以是操作初始地图进行平移的指令。示例性的,用户可以通过鼠标点击拖拽平移初始地图中某处的方式发出平移指令,具体的,检测操作指令是否为平移指令的方法可以是现有技术中的方法,例如根据鼠标移动的距离计算鼠标平移因子等,本实施例对此不进行限定。
获取针对初始地图的操作指令对应的转换矩阵,包括:
若检测到针对初始地图的平移指令,则获取初始地图的起始点坐标信息、宽度信息以及高度信息。
在实际操作过程中,地图的平移跟地图图层的起始点相关,可以通过地图API获取初始地图的起始点坐标信息、宽度信息以及高度信息。示例性的,初始地图的起始点坐标信息可以表示为(tx,ty),宽度信息可以表示为width,高度信息可以表示为height。
根据初始地图的起始点坐标信息、宽度信息以及高度信息确定平移指令对应的转换矩阵。
具体的,根据初始地图的起始点坐标信息(tx,ty)、宽度信息width以及高度信息height确定平移指令对应的转换矩阵。
可选的,根据初始地图的起始点坐标信息、宽度信息以及高度信息确定平移指令对应的转换矩阵,包括:
根据初始地图的起始点坐标信息确定平移矩阵。
需要说明的是,平移矩阵可以是用户对初始地图进行地图平移操作后,对初始地图进行转换时的计算矩阵。在本实施例中,平移矩阵可以用M平移进行表示。
具体的,根据初始地图的起始点坐标信息(tx,ty)确定平移矩阵的具体方式可以为:
M平移=(1,0,tx,0,1,ty);
其中,tx表示初始地图的起始点坐标信息中的横坐标信息,ty表示初始地图的起始点坐标信息中的纵坐标信息。
根据初始地图的宽度信息和高度信息确定裁剪矩阵。
需要解释的是,在对初始地图进行缩放平移等操作后,在界面上显示的目标地图的显示范围也会跟着发生变化,因此,需要对将要显示的地图界面进行裁剪,得到目标地图,之后再进行显示。其中,裁剪矩阵可以是对缩放平移后的地图进行裁剪变换的矩阵。在本实施例中,平移矩阵可以用M裁剪进行表示。
具体的,根据初始地图的宽度信息width以及高度信息height确定裁剪矩阵M裁剪的具体方式可以为:
M裁剪=(2.0/width,0,0,-2.0/height,-1,1);
其中,width表示初始地图的宽度信息,height表示初始地图的高度信息。
在实际操作过程中,之所以裁剪矩阵出现了-1,是由于WEBGL裁剪坐标的y坐标轴与地图图层的y坐标轴方向相反,前者是向上为正,后者是向下为正。经过裁剪矩阵,数据点的坐标最终变换到(-1,1)之间,能够直接进行栅格化绘制。
在实际操作过程中,裁剪坐标与当前WEBGL窗口的大小相关,如果用户改变了地图窗口大小,或者进入/退出全屏,则需要重新计算此矩阵。
根据平移矩阵和裁剪矩阵确定平移指令对应的转换矩阵。
具体的,可以将平移矩阵M平移和裁剪矩阵M裁剪相乘,计算得到平移指令对应的转换矩阵。
可选的,操作指令包括缩放指令。
其中,缩放指令可以是操作初始地图进行缩放的指令。示例性的,用户可以通过鼠标滚轮滚动初始地图中某处的方式发出缩放指令,具体的,检测操作指令是否为缩放指令的方法可以是现有技术中的方法,例如根据鼠标滚轮滚动的距离计算鼠标缩放因子等,本实施例对此不进行限定。
获取针对初始地图的操作指令对应的转换矩阵,包括:
若检测到针对初始地图的缩放指令,则获取缩放指令对应的缩放参数。
其中,缩放参数可以是初始地图的缩放级别,在本实施例中,缩放参数即缩放级别可以用scale进行表示,缩放级别scale可以通过地图API获得。
具体的,当检测到针对初始地图的操作指令为缩放指令时,获取缩放指令对应的缩放参数scale。
根据缩放参数确定缩放矩阵。
需要说明的是,缩放矩阵可以是用户对初始地图进行地图缩放操作后,对初始地图进行转换时的计算矩阵。在本实施例中,缩放矩阵可以用M缩放进行表示。
一般的,地图的缩放可以是缩放级别scale的2的幂次的倒数,即
Figure BDA0004198309200000121
具体的,根据缩放参数scale确定缩放矩阵M缩放的具体方式可以为:
M裁剪=(s,0,0,0,s,0);
以上缩放矩阵M缩放为行主序的仿射矩阵。
一般地图的缩放操作伴随着一个动画过程,为了避免缩放过程中,数据点出现在一个错误的位置,可以在动画开始前禁止WEBGL图层,动画结束,并完成计算后,再启用WEBGL图层。
根据缩放矩阵和裁剪矩阵确定缩放指令对应的转换矩阵。
具体的,可以将缩放矩阵M缩放和裁剪矩阵M裁剪相乘,计算得到缩放指令对应的转换矩阵。
在实际操作过程中,在每一次绘制时,绑定到预先设定好的VAO,重新将地图转换矩阵Mtrans和缩放级别scale通过uniform变量传入顶点着色器,在顶点着色器中完成最后的顶点坐标位置计算。
本发明实施例的方案能够避免预生成点云图片,因此当地图底图在不同的地图源之间切换,只需要切换不同的矩阵就可以了,避免需要为每一种投影切换不同的点云图片集合,从而减轻存储的负担。
可选的,该地图生成方法还包括:
若检测到缩放参数大于预设阈值,则显示每个目标对象对应的预设图片。
其中,预设阈值可以是由用户根据实际情况预先设置的阈值,本发明实施例对预设阈值的数值大小不进行限定。优选的,预设阈值可以是9。
在本实施例中,预设图片可以是目标对象的图标,且图标的方向可以是对应目标对象的朝向即航迹方向。
在实现过程中,为了实现用户的视点位于远处时显示点云图,常见的如绿点图;视点位于近处时显示图标的效果,传入的缩放级别使得顶点着色器相应调整点精灵的大小gl_PointSize,使得片元着色器相应调整点精灵的显示方式——当缩放级别scale大于预设阈值(如9)时,使用GPU片元着色器显示预设图片,预设图片可以是显示ADSB数据时的一个飞机图标,或者显示AIS数据时的一个船舶图标,且图标的方向对应着飞机、船舶的航迹方向,这个方向可以在着色器中执行CPU传入的旋转方向。这个操作由GPU着色器直接处理。
若检测到缩放参数小于或者等于预设阈值,则显示预设颜色。
其中,预设颜色可以是由用户根据实际情况预先设置的颜色,本发明实施例对预设颜色不进行限定。优选的,预设颜色可以是绿色。
在现有技术中,较低缩放级别显示的图片是数据点预先离线生成,因此需要有一套可靠的机制确保离线生成的图片与放大后显示的标记点数据保持同步,维护开销较大,而且用户有时并不想看见一个区域的点数目,而希望直接看见密集的绿点,对海量数据有一个直观的感受。
具体的,当缩放级别scale小于或者等于预设阈值时,可以由GPU片元着色器直接输出某一个固定的颜色(如绿色)。这个操作由GPU着色器直接处理。另外,由于数据点的数目较多,可以采用WEBGL2的实例绘制的命令进行批量绘制,即glDrawArraysInstanced,能够加快渲染速度。
本发明实施例的方案在地图处于不同缩放级别时,不需要分别显示预生成的点云图片和标注点,从而使得后台开发人员减小了图片生成的工作,也避免出现图片中的点与标注Marker位置不一致的问题。由于点和图片的绘制和切换都是由GPU的片元着色器自动完成,因此,此缩放可以非常平滑地在点和图片之间进行切换。这也极大地改善了视觉体验,避免了CPU更新图片时的闪烁问题。
一般的地图API通过判断鼠标的点击点与所有数据点的距离判断哪个数据点已经被选中。除了对海量数据点进行显示外,可以将页面上的所有数据点组织成四叉树的形式,加快判断。然而,当数据点的数目达到一定规模后,即使采用树形结构的方式,仍然不能满足快速判断的性能要求。
本发明实施例中,采用“颜色键”的方式进行鼠标点击的拾取。具体办法是:在鼠标点击时,立即进入颜色键模式,将页面上所有的点,显示为不同的颜色。这通常采用将点的ID映射到RGB矢量的方法来完成。在颜色键模式中,如果此时点精灵处于图标显示状态,还需关闭图标显示,也就是禁用纹理,将之恢复到普通的纯色显示。然后通过glReadPixels读取鼠标点击处的WEBGL画布颜色值。如果它不为0,则说明有点被选中,它的颜色能够判断出选中的点序号,即将RGB矢量采用与确定颜色时可逆的方式反向映射到点的ID,进而显示被选中的点的相关信息。
可选的,该地图生成方法还包括:
当检测到针对目标地图中目标对象的点击操作时,获取点击操作对应的目标对象的目标颜色。
其中,点击操作可以是用户通过鼠标在目标地图上进行点击的操作。
在本实施例中,目标颜色可以是用户通过鼠标点击击中的目标对象的颜色。
具体的,当检测到针对目标地图中目标对象的鼠标点击操作时,将GPU由绘制模式切换到颜色键模式,并获取鼠标点击操作对应的目标对象的目标颜色。
获取预设函数。
需要解释的是,预设函数可以是由用户根据实际情况预先设置的,用于根据目标对象的颜色确定目标对象的ID号的映射函数。本发明实施例对预设函数的具体类型不进行限定,能够满足本发明实施例实际需求的函数均可。
根据目标颜色和所述预设函数确定所述目标对象的标识信息。
示例性的,目标对象的标识信息可以是目标对象的ID号。其中,目标对象的ID号可以是预先设置的。
具体的,通过目标对象对应的目标颜色RGB和预设函数确定目标对象的ID号。
在实际操作过程中,为了支持颜色键模式,在初始时,可以将目标对象的ID号作为目标对象的属性信息一起传入着色器,在片元着色器阶段,进入颜色键模式时,将目标对象的ID号转换到RGB值,可以采用R=ID mod 256,G=(ID/256)mod 256,B=ID/256/256的方式。这种方式支持多达256*256*256约1.6亿个点的绘制。在glReadPixels读取RGB之后,如果颜色值不为全零,在CPU中采用ID=B*256*256+G*256+R的方式即可得知点击的目标对象的ID号。
在实际操作过程中,为了使得数据点即目标对象较易被选中,可以在点击同时,即在颜色键模式中,适当扩大点精灵的大小,如将点精灵的大小gl_PointSize扩大到本来大小的150%,方便用户通过鼠标点击选择。
本发明实施例中,通过颜色键的方式进行数据点的拾取,毋需进行坐标距离的计算,大大减小了浏览器端对海量数据点的拾取时进行逐一距离判断计算。
本发明实施例的技术方案提出了一种基于点精灵的海量数据显示方案,能够解决海量物联网数据点的显示问题;同时,提出了海量物联网数据绘制时,鼠标点击的响应处理方案。通过本发明的技术方案,能够解决海量数据点在地图上的绘制以及快速显示问题,同时,避免了预生成点云图片,因此当地图底图在不同的地图源之间切换时,只需要切换不同的变换矩阵就可以了,避免了需要为每一种投影切换不同的点云图片集合,从而减轻了存储的负担。
实施例二
图2是本发明实施例中的一种地图生成装置的结构示意图。本实施例可适用于地图生成的情况,该装置可采用软件和/或硬件的方式实现,该装置可集成在任何提供地图生成的功能的设备中,如图2所示,所述地图生成装置具体包括:第一获取模块201、确定模块202、第一生成模块203、第二获取模块204和第二生成模块205。
其中,第一获取模块201,用于获取待绘制地图对应的至少一个目标对象的属性信息;
确定模块202,用于根据所述目标对象的属性信息确定地图图层坐标;
第一生成模块203,用于根据所述地图图层坐标生成初始地图;
第二获取模块204,用于获取针对所述初始地图的操作指令对应的转换矩阵;
第二生成模块205,用于根据所述转换矩阵和所述地图图层坐标生成目标地图。
可选的,所述第二生成模块205包括:
第一确定单元,用于根据所述转换矩阵和所述地图图层坐标确定每个所述目标对象的顶点坐标;
生成单元,用于根据每个所述目标对象的顶点坐标生成目标地图。
可选的,所述操作指令包括平移指令;
所述第二获取模块204包括:
第一获取单元,用于若检测到针对所述初始地图的平移指令,则获取所述初始地图的起始点坐标信息、宽度信息以及高度信息;
第二确定单元,用于根据所述初始地图的起始点坐标信息、宽度信息以及高度信息确定所述平移指令对应的转换矩阵。
可选的,所述第二确定单元具体用于:
根据所述初始地图的起始点坐标信息确定平移矩阵;
根据所述初始地图的宽度信息和高度信息确定裁剪矩阵;
根据所述平移矩阵和所述裁剪矩阵确定所述平移指令对应的转换矩阵。
可选的,所述操作指令包括缩放指令;
所述第二获取模块204包括:
第二获取单元,用于若检测到针对所述初始地图的缩放指令,则获取所述缩放指令对应的缩放参数;
第三确定单元,用于根据所述缩放参数确定缩放矩阵;
第四确定单元,用于根据所述缩放矩阵和所述裁剪矩阵确定所述缩放指令对应的转换矩阵。
可选的,所述地图生成装置包括:
第一显示模块,用于若检测到所述缩放参数大于预设阈值,则显示每个所述目标对象对应的预设图片;
第二显示模块,用于若检测到所述缩放参数小于或者等于所述预设阈值,则显示预设颜色。
可选的,所述地图生成装置包括:
第三获取模块,用于当检测到针对所述目标地图中所述目标对象的点击操作时,获取所述点击操作对应的所述目标对象的目标颜色;
第四获取模块,用于获取预设函数;
信息确定模块,用于根据所述目标颜色和所述预设函数确定所述目标对象的标识信息。
上述产品可执行本发明任意实施例所提供的地图生成方法,具备执行地图生成方法相应的功能模块和有益效果。
实施例三
图3示出了可以用来实施本发明的实施例的电子设备30的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图3所示,电子设备30包括至少一个处理器31,以及与至少一个处理器31通信连接的存储器,如只读存储器(ROM)32、随机访问存储器(RAM)33等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器31可以根据存储在只读存储器(ROM)32中的计算机程序或者从存储单元38加载到随机访问存储器(RAM)33中的计算机程序,来执行各种适当的动作和处理。在RAM 33中,还可存储电子设备30操作所需的各种程序和数据。处理器31、ROM 32以及RAM 33通过总线34彼此相连。输入/输出(I/O)接口35也连接至总线34。
电子设备30中的多个部件连接至I/O接口35,包括:输入单元36,例如键盘、鼠标等;输出单元37,例如各种类型的显示器、扬声器等;存储单元38,例如磁盘、光盘等;以及通信单元39,例如网卡、调制解调器、无线通信收发机等。通信单元39允许电子设备30通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器31可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器31的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器31执行上文所描述的各个方法和处理,例如地图生成方法:
获取待绘制地图对应的至少一个目标对象的属性信息;
根据所述目标对象的属性信息确定地图图层坐标;
根据所述地图图层坐标生成初始地图;
获取针对所述初始地图的操作指令对应的转换矩阵;
根据所述转换矩阵和所述地图图层坐标生成目标地图。
在一些实施例中,地图生成方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元38。在一些实施例中,计算机程序的部分或者全部可以经由ROM 32和/或通信单元39而被载入和/或安装到电子设备30上。当计算机程序加载到RAM 33并由处理器31执行时,可以执行上文描述的地图生成方法的一个或多个步骤。备选地,在其他实施例中,处理器31可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行地图生成方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (10)

1.一种地图生成方法,其特征在于,包括:
获取待绘制地图对应的至少一个目标对象的属性信息;
根据所述目标对象的属性信息确定地图图层坐标;
根据所述地图图层坐标生成初始地图;
获取针对所述初始地图的操作指令对应的转换矩阵;
根据所述转换矩阵和所述地图图层坐标生成目标地图。
2.根据权利要求1所述的方法,其特征在于,根据所述转换矩阵和所述地图图层坐标生成目标地图,包括:
根据所述转换矩阵和所述地图图层坐标确定每个所述目标对象的顶点坐标;
根据每个所述目标对象的顶点坐标生成目标地图。
3.根据权利要求1所述的方法,其特征在于,所述操作指令包括平移指令;
获取针对所述初始地图的操作指令对应的转换矩阵,包括:
若检测到针对所述初始地图的平移指令,则获取所述初始地图的起始点坐标信息、宽度信息以及高度信息;
根据所述初始地图的起始点坐标信息、宽度信息以及高度信息确定所述平移指令对应的转换矩阵。
4.根据权利要求3所述的方法,其特征在于,根据所述初始地图的起始点坐标信息、宽度信息以及高度信息确定所述平移指令对应的转换矩阵,包括:
根据所述初始地图的起始点坐标信息确定平移矩阵;
根据所述初始地图的宽度信息和高度信息确定裁剪矩阵;
根据所述平移矩阵和所述裁剪矩阵确定所述平移指令对应的转换矩阵。
5.根据权利要求4所述的方法,其特征在于,所述操作指令包括缩放指令;
获取针对所述初始地图的操作指令对应的转换矩阵,包括:
若检测到针对所述初始地图的缩放指令,则获取所述缩放指令对应的缩放参数;
根据所述缩放参数确定缩放矩阵;
根据所述缩放矩阵和所述裁剪矩阵确定所述缩放指令对应的转换矩阵。
6.根据权利要求5所述的方法,其特征在于,还包括:
若检测到所述缩放参数大于预设阈值,则显示每个所述目标对象对应的预设图片;
若检测到所述缩放参数小于或者等于所述预设阈值,则显示预设颜色。
7.根据权利要求1所述的方法,其特征在于,还包括:
当检测到针对所述目标地图中所述目标对象的点击操作时,获取所述点击操作对应的所述目标对象的目标颜色;
获取预设函数;
根据所述目标颜色和所述预设函数确定所述目标对象的标识信息。
8.一种地图生成装置,其特征在于,包括:
第一获取模块,用于获取待绘制地图对应的至少一个目标对象的属性信息;
确定模块,用于根据所述目标对象的属性信息确定地图图层坐标;
第一生成模块,用于根据所述地图图层坐标生成初始地图;
第二获取模块,用于获取针对所述初始地图的操作指令对应的转换矩阵;
第二生成模块,用于根据所述转换矩阵和所述地图图层坐标生成目标地图。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的地图生成方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的地图生成方法。
CN202310449887.1A 2023-04-24 2023-04-24 一种地图生成方法、装置、设备和存储介质 Pending CN116416399A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310449887.1A CN116416399A (zh) 2023-04-24 2023-04-24 一种地图生成方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310449887.1A CN116416399A (zh) 2023-04-24 2023-04-24 一种地图生成方法、装置、设备和存储介质

Publications (1)

Publication Number Publication Date
CN116416399A true CN116416399A (zh) 2023-07-11

Family

ID=87057855

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310449887.1A Pending CN116416399A (zh) 2023-04-24 2023-04-24 一种地图生成方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN116416399A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106847068A (zh) * 2017-01-22 2017-06-13 腾云天宇科技(北京)有限公司 一种地图转换方法、装置和计算设备
CN110956673A (zh) * 2018-09-26 2020-04-03 北京高德云图科技有限公司 一种地图绘制方法及装置
CN112750190A (zh) * 2021-01-28 2021-05-04 腾讯科技(深圳)有限公司 三维热力图生成方法、装置、设备及存储介质
US11069119B1 (en) * 2020-02-28 2021-07-20 Verizon Patent And Licensing Inc. Methods and systems for constructing a shader
WO2023010851A1 (zh) * 2021-08-05 2023-02-09 稿定(厦门)科技有限公司 基于WebGL的图形渲染方法、装置及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106847068A (zh) * 2017-01-22 2017-06-13 腾云天宇科技(北京)有限公司 一种地图转换方法、装置和计算设备
CN110956673A (zh) * 2018-09-26 2020-04-03 北京高德云图科技有限公司 一种地图绘制方法及装置
US11069119B1 (en) * 2020-02-28 2021-07-20 Verizon Patent And Licensing Inc. Methods and systems for constructing a shader
CN112750190A (zh) * 2021-01-28 2021-05-04 腾讯科技(深圳)有限公司 三维热力图生成方法、装置、设备及存储介质
WO2023010851A1 (zh) * 2021-08-05 2023-02-09 稿定(厦门)科技有限公司 基于WebGL的图形渲染方法、装置及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
(美)帕特里克·卡兹,凯文·瑞恩著: "《三维数字地球引擎设计》", 北京:国防工业出版社, pages: 228 - 229 *

Similar Documents

Publication Publication Date Title
CN112785674B (zh) 纹理贴图的生成方法、渲染方法、装置、设备及存储介质
CN115082639B (zh) 图像生成方法、装置、电子设备和存储介质
US9704282B1 (en) Texture blending between view-dependent texture and base texture in a geographic information system
JP2023520841A (ja) 画像処理方法、装置、コンピュータプログラム、および電子デバイス
CN111932464B (zh) 超分辨率模型使用和训练方法、装置、设备及介质
JP7253002B2 (ja) 電子地図表示方法、装置、機器及び読み取り可能な記憶媒体
CN114491351B (zh) 可适配WebGIS平台的格点数据可视化方法和系统
CN114627239B (zh) 包围盒生成方法、装置、设备及存储介质
CN115908687A (zh) 渲染网络的训练、渲染方法、装置及电子设备
CN108897826B (zh) 横幅图片快速生成方法、系统及存储介质
WO2024002064A1 (zh) 三维模型构建方法、装置、电子设备及存储介质
CN112634414A (zh) 地图显示方法及装置
CN115937389A (zh) 阴影渲染方法、装置、存储介质和电子设备
CN118135081A (zh) 模型生成方法、装置、计算机设备和计算机可读存储介质
CN115619986B (zh) 场景漫游方法、装置、设备和介质
CN110502305B (zh) 一种动态界面的实现方法、装置及相关设备
CN117234726A (zh) 基于空间网格的点云实时融合渲染服务器及其客户端
CN115761123B (zh) 三维模型处理方法、装置、电子设备以及存储介质
CN116416399A (zh) 一种地图生成方法、装置、设备和存储介质
CN115375847B (zh) 材质恢复方法、三维模型的生成方法和模型的训练方法
CN114549303B (zh) 图像显示、处理方法、装置、设备和存储介质
CN115880461A (zh) 一种增强现实图像生成方法、装置、设备及存储介质
CN113362438A (zh) 全景渲染的方法、装置、电子设备、介质及程序
CN114564268A (zh) 一种设备管理方法、装置、电子设备和存储介质
CN113051491A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20230711