CN115187709A - 地理模型处理方法、装置、电子设备及可读存储介质 - Google Patents
地理模型处理方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN115187709A CN115187709A CN202210798596.9A CN202210798596A CN115187709A CN 115187709 A CN115187709 A CN 115187709A CN 202210798596 A CN202210798596 A CN 202210798596A CN 115187709 A CN115187709 A CN 115187709A
- Authority
- CN
- China
- Prior art keywords
- model
- projection
- map
- geographic
- game engine
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Computer Graphics (AREA)
- Remote Sensing (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请实施例提供了一种地理模型处理方法、装置、电子设备及可读存储介质,涉及计算机技术领域。该方法包括:获取待加载的地理模型,基于地理模型的经纬度坐标将地理模型投影至使用空间直角坐标系的游戏引擎空间,得到第一投影模型;然后确定第一投影模型中的第一关注点,可以基于第一关注点和游戏引擎空间的游戏坐标原点对第一投影模型进行偏移,使第一投影模型的第一关注点偏移后位于游戏引擎空间的游戏坐标原点。从而避免图缝隙或者模型变形,较好地提升了模型加载效果。
Description
技术领域
本申请涉及计算机技术领域,具体而言,本申请涉及一种地理模型处理方法、装置、电子设备及可读存储介质。
背景技术
随着科学技术的发展,数字孪生技术已经从理论概念逐步到技术应用的阶段。真实地理空间中的许多事物已经能用数字技术进行建模和表示。
例如,地理信息系统(Geographic Information System或Geo-Informationsystem,GIS)有时又称为“地学信息系统”,是一种特定的十分重要的空间信息系统,可以对真实地理空间中的各类数据进行采集、储存、管理、运算、分析、显示和描述。而GIS数据,可以理解为是GIS系统在计算机硬、软件系统支持下,采集和汇总到的整个或部分地球表层(包括大气层)空间中的有关地理分布的数据。
在现有技术方案中,将GIS数据应用于游戏场景时,由于GIS数据涉及的真实地理空间十分广阔,通常难以方便快速加载GIS数据的方法,使得在游戏引擎中二维或三维GIS数据的展示效果不佳,难以满足实际应用需求。
发明内容
本申请实施例的目的旨在能解决模型渲染效果不够好的技术问题。
第一方面,本申请提供了一种地理模型处理方法,该方法包括:
获取待加载的地理模型,基于地理模型的经纬度坐标将地理模型投影至使用空间直角坐标系的游戏引擎空间,得到第一投影模型;
确定第一投影模型中的第一关注点,基于第一关注点和游戏引擎空间的游戏坐标原点对第一投影模型进行偏移,使第一投影模型的第一关注点偏移后位于游戏引擎空间的游戏坐标原点。
在第一方面的可选实施例中,方法还包括:
调整第一投影模型进行偏移后的尺寸,得到第二投影模型,渲染第二投影模型。
在第一方面的可选实施例中,基于第一关注点和游戏引擎空间的游戏坐标原点对第一投影模型进行偏移,包括:
基于第一关注点在第一投影模型中的坐标和游戏引擎空间的游戏坐标原点之间的距离确定偏移量;
基于偏移量对第一投影模型进行偏移。
在第一方面的可选实施例中,基于偏移量对第一投影模型进行偏移,包括:
确定第一投影模型的每个模型网格的坐标数据;
基于偏移量对每个模型网格的坐标数据进行偏移,得到偏移坐标数据;
基于偏移坐标数据确定偏移后的各个模型网格,基于偏移后的各个模型网格形成偏移后的投影模型。
在第一方面的可选实施例中,渲染第二投影模型,包括:
对地理模型进行解析,获取地理模型对应的模型材质数据;
基于模型材质数据对第二投影模型进行贴图,得到游戏引擎空间对应的待渲染模型;
创建待渲染模型对应的游戏引擎节点,将待渲染模型与对应游戏引擎节点绑定;
对绑定后的待渲染模型进行渲染。
在第一方面的可选实施例中,对绑定后的待渲染模型进行渲染之前,方法还包括:
检测绑定后的待渲染模型所占的内存;
若绑定后的待渲染模型占的内存超过预设的内存阈值,移除绑定后的待渲染模型。
在第一方面的可选实施例中,基于地理模型的经纬度坐标将地理模型投影至使用空间直角坐标系的游戏引擎空间之后,方法还包括:
获取地理模型对应的投影地图;投影地图为与地理模型对应的、应用平面直角坐标系的二维数据;
对投影地图进行划分,得到至少两个地图瓦片;
渲染至少两个地图瓦片中满足预设条件的地图瓦片,得到渲染后的投影地图。
在第一方面的可选实施例中,获取地理模型对应的投影地图,包括:
基于地理模型的经纬度坐标将地理模型投影至使用空间直角坐标系的游戏引擎空间,获取初始投影地图;
确定初始投影地图中的第二关注点,基于第二关注点和游戏引擎空间的游戏坐标原点对初始投影地图进行偏移,并对偏移后的投影地图的尺寸进行调整,得到新的投影地图。
在第一方面的可选实施例中,各个地图瓦片具有对应的层级精度;游戏引擎空间中存在预设的虚拟摄像机;
渲染至少两个地图瓦片中满足预设条件的地图瓦片,得到渲染后的投影地图,包括:
确定至少两个地图瓦片中层级精度满足预设精度要求并且在虚拟摄像机的可视范围之内的目标地图瓦片;
将各个目标地图瓦片分别绑定游戏引擎空间的游戏引擎节点,并对绑定后的目标地图瓦片进行渲染。
在第一方面的可选实施例中,将各个目标地图瓦片分别绑定游戏引擎空间的游戏引擎节点,包括:
针对每个目标瓦片地图,从预设的节点序列中取出一个游戏引擎节点,将目标瓦片地图绑定至取出的游戏引擎节点。
第二方面,提供了一种地理模型处理装置,该装置包括:
模型投影模块,获取待加载的地理模型,基于地理模型的经纬度坐标将地理模型投影至使用空间直角坐标系的游戏引擎空间,得到第一投影模型;
模型偏移模块,确定第一投影模型中的第一关注点,基于第一关注点和游戏引擎空间的游戏坐标原点对第一投影模型进行偏移,使第一投影模型的第一关注点偏移后位于游戏引擎空间的游戏坐标原点。
第三方面,提供了一种电子设备,该电子设备包括:
存储器、处理器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现上述任一实施例的地理模型处理方法。
第四方面,提供了一种可读存储介质,可读存储介质上存储有程序,该程序被处理器执行时实现上述任一实施例的地理模型处理方法。
上述的地理模型处理方法,获取待加载的地理模型,基于地理模型的经纬度坐标将地理模型投影至使用空间直角坐标系的游戏引擎空间,得到第一投影模型;然后确定第一投影模型中的第一关注点,可以基于第一关注点和游戏引擎空间的游戏坐标原点对第一投影模型进行偏移,使第一投影模型的第一关注点偏移后位于游戏引擎空间的游戏坐标原点。本申请通过对投影后的模型进行偏移,使投影模型中的关注点偏移后位于游戏引擎空间的游戏坐标原点,从而避免出现地图缝隙或者模型变形,较好地提升了模型加载效果。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种地理模型处理方法的流程示意图;
图2为本申请实施例提供的一种地理模型处理方法中地图瓦片的示意图;
图3为本申请实施例提供的一种地理模型处理方法中瓦片节点队列的示意图;
图4为本申请实施例提供的一种地理模型处理方法的流程示意图;
图5为本申请实施例提供的一种地理模型处理方法的流程示意图;
图6为本申请实施例提供的一种地理模型处理装置的结构示意图;
图7为本申请实施例提供的一种用于地理模型处理的电子设备的结构示意图。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”可以实现为“A”,或者实现为“B”,或者实现为“A和B”。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先,对本申请涉及到的部分技术词汇进行简要说明:
地理信息系统(Geographic Information System或Geo-Information system,GIS)有时又称为“地学信息系统”。它是一种特定的十分重要的空间信息系统。它是在计算机硬、软件系统支持下,对整个或部分地球表层(包括大气层)空间中的有关地理分布数据进行采集、储存、管理、运算、分析、显示和描述的技术系统。
墨卡托投影:墨卡托投影是将三维的地球表示在一个二维平面上的方法之一,也是应用得最广泛的方法。
地图瓦片,对地图数据进行切割后得到的瓦片数据,地图瓦片主要使用两种方式,一种是传统的栅格瓦片,另外一种是新出的矢量瓦片(Vector Tiles),前者是采用四叉树金字塔模型的分级方式,将地图切割成无数大小相等的矩形栅格图片,由这些矩形栅格图片按照一定规则拼接成不同层级的地图显示。
随着科学技术的发展,数字孪生技术已经从理论概念逐步到技术应用的阶段。在当前技术环境下,游戏行业和GIS行业最有可能成为数字孪生的主导行业,然而,在三维游戏引擎还没有真实地理坐标到游戏引擎三维坐标的转换方法,也没有可以方便快速加载gis数据的方法及工具,这使得在游戏引擎中展示二维gis瓦片地图及真实三维gis数据变得很困难。
本申请提供的地理模型处理方法、装置、电子设备、计算机可读存储介质以及计算机程序产品,旨在解决现有技术的如上技术问题。
下面通过对几个示例性实施方式的描述,对本申请实施例的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
本申请实施例中提供了一种地理模型处理方法,如图1所示,该方法可以包括:
步骤S101,获取待加载的地理模型,基于地理模型的经纬度坐标将地理模型投影至使用空间直角坐标系的游戏引擎空间,得到第一投影模型。
在本申请实施例中,待加载的地理模型可以是根据实际地理信息进行建模后得到的、能展现地理信息的模型,也可以是虚拟的、模拟的展示预设的地理信息的模型,模型的内容和格式本申请不做限制。待加载的地理模型可以使用大地坐标系,由经度(lon)、纬度(lat)和高(height)组成。
作为一个示例,本申请中待加载的地理模型可以是3dtiles(三维瓦片)格式的三维GIS数据。
可以基于地理模型的经纬度坐标将地理模型投影至使用空间直角坐标系的游戏引擎控空间,得到第一投影模型。第一投影模型可以是将地理模型投影到游戏引擎空间后得到的模型。
其中,投影方式可以为墨卡托投影,墨卡托投影可以包含多种类型,圆锥投影、圆柱投影和方位投影等等,具体投影方式本申请不做限制。
在一些实施例中,可以将大地坐标的经度作为空间直角坐标系的Z轴,将纬度作为空间直角坐标系的X轴,将高度作为空间直角坐标系的Y轴。使用墨卡托投影方案进行投影时,可以以经度和纬度构成的平面为基础,将经度和纬度转换成米,高度保留,上述方法可以表达为如下公式:
plon=2*PI*cos(2*PI/360*lon)*RADIUS/360 公式(1)
plat=2*PI*cos(2*PI/360*lat)*RADIUS/360 公式(2)
其中,plon表示单位转换为米后的经度,plat表示单位转换为米后的纬度,PI表示圆周率,RADIUS表示地球半径,cos表示余弦函数。
投影后得到的第一投影模型可以使用空间直角坐标系,并且单位可以为米。
步骤S102,确定第一投影模型中的第一关注点,基于第一关注点和游戏引擎空间的游戏坐标原点对第一投影模型进行偏移,使第一投影模型的第一关注点偏移后位于游戏引擎空间的游戏坐标原点。
其中,将地理模型投影至使用空间直角坐标系的游戏引擎空间,得到的第一投影模型时,通常是基于地理模型的原点与游戏引擎空间的原点对应这一前提下进行投影的。
而本申请实施例中,可以确定第一投影模型中的第一关注点,基于第一关注点和游戏引擎空间的游戏坐标原点对第一投影模型进行偏移,使第一投影模型的第一关注点偏移后位于游戏引擎空间的游戏坐标原点。
第一关注点可以是用户从第一投影模型中确定出的、想要重点关注的点,以第一关注点为依据对第一投影模型进行偏移,使第一投影模型的第一关注点偏移后位于游戏引擎空间的游戏坐标原点。
在实际应用场景中,游戏引擎空间里,离游戏坐标原点越远的位置,javascript浮点数的计算越可能出现误差,使得在偏离游戏坐标原点很远的地方计算地图瓦片转换后的坐标时会出现误差,导致相邻的地图瓦片显示出来的时候会出现缝隙,难以完全接合,模型出现变形,模型的显示效果不够好。本申请中,通过根据设置的第一关注点对第一投影模型进行偏移,使第一投影模型的第一关注点偏移后位于游戏引擎空间的游戏坐标原点,使得第一投影模型中用户想要关注的部分能位于或者接近游戏引擎空间的游戏坐标原点,避免出现地图缝隙或者模型变形,更好地向用户展示模型显示效果。
本申请中,基于第一关注点和游戏引擎空间的游戏坐标原点对第一投影模型进行偏移,可以理解为以第一关注点和游戏坐标原点为基准,计算出第一关注点到游戏坐标原点的偏移量之后,将第一关注点偏移到游戏坐标原点的同时,第一投影模型中除了第一关注点的其他点都将根据第一关注点到游戏坐标原点的偏移量进行偏移,从而实现将整个第一投影模型都基于第一关注点和游戏坐标原点进行偏移。
在本申请实施例中,可以对第一投影模型发生偏移后的尺寸进行调整,得到第二投影模型,渲染第二投影模型。
其中,可以将第一投影模型偏移后的尺寸进行放大或者缩小,其方法为可以将第一投影模型偏移后的各个点的坐标乘以一个缩放比,这个缩放比可以用来控制真实世界相对于游戏引擎空间的整体大小,可以配合游戏引擎中的虚拟摄像机的远点属性(far)一起使用,用来解决超大地理空间范围的三维模型在游戏引擎中显示效果不佳的问题。
本申请中的远点属性(far)可以是指相机的远裁剪距离,应在可接受范围内尽量取最小。
在一些实施例中,缩放比可以为scale,则三维坐标乘以缩放比可以表征为(x*scale,y*scale,z*scale)。
在另一些实施例中,也可以在投影后、偏移前先对投影后得到的第一投影模型进行尺寸调整,再对尺寸调整后的第一投影模型进行偏移。
可以渲染第二投影模型,以实现在游戏引擎空间中显示第二投影模型。
在本申请实施例中,基于第一关注点和游戏引擎空间的游戏坐标原点对第一投影模型进行偏移,具体可以包括如下步骤:
(1)基于第一关注点在第一投影模型中的坐标和游戏引擎空间的游戏坐标原点之间的距离确定偏移量。偏移量可以是计算第一关注点到游戏坐标原点在X轴和Z轴上距离,分别作为纬度和经度上以米制为单位的偏移量。
(2)基于偏移量对第一投影模型进行偏移。
其中,基于偏移量对第一投影模型进行偏移可以通过对第一投影模型中的每个点进行偏移实现。
上述的地理模型处理方法,获取待加载的地理模型,基于地理模型的经纬度坐标将地理模型投影至使用空间直角坐标系的游戏引擎空间,得到第一投影模型;然后确定第一投影模型中的第一关注点,可以基于第一关注点和游戏引擎空间的游戏坐标原点对第一投影模型进行偏移,使第一投影模型的第一关注点偏移后位于游戏引擎空间的游戏坐标原点。从而避免游戏引擎空间中因第一关注点离游戏坐标原点太远,java数据的计算产生误差,导致出现地图缝隙或者模型变形,较好地提升了模型加载效果。
下面将具体说明如何对模型进行偏移和渲染。
在本申请实施例中,第一投影模型由至少一个模型网格构成。模型网格可以是指组成模型的网格(Mesh),模型网格的主要属性内容包括顶点坐标,法线,纹理坐标,三角形绘制序列等其他有用属性和功能
在本申请实施例中,基于偏移量对第一投影模型进行偏移,可以包括如下步骤:
(1)确定第一投影模型的每个模型网格的坐标数据。其中,坐标数据包括但不限于顶点坐标和法线坐标等。
(2)基于偏移量对每个模型网格的坐标数据进行偏移,得到偏移坐标数据。偏移坐标数据包含每个模型网格偏移后的坐标数据。
基于偏移坐标数据确定偏移后的各个模型网格,基于偏移后的各个模型网格形成偏移后的投影模型。
在本申请实施例中,可以将地理模型所使用的大地坐标的经度作为空间直角坐标系的Z轴,将纬度作为空间直角坐标系的X轴,将高度作为空间直角坐标系的Y轴。
针对同一模型而言,其所有点的偏移量可以是相同的,因此,可以将第一关注点到游戏坐标原点在X轴和Z轴上距离分别作为纬度和经度上以米制为单位的偏移量。该偏移量可以作为同一个模型的所有点的偏移量,无需重复计算。
针对每一个需要进行偏移的坐标,确定出偏移量之后,进行偏移的公式可以表示为公式(3)和公式(4):
plon=2*PI*cos(2*PI/360*lon)*RADIUS/360+offsetPlon 公式(3)
plat=2*PI*cos(2*PI/360*lat)*RADIUS/360+offsetPlat 公式(4)
其中,plon可以为初始投影地图中的任一点、转换为米后的经度,plat可以为任一点、转换为米后的纬度。PI表示圆周率,RADIUS表示地球半径,cos表示余弦函数。
offsetPlon表示转换为米后的经度上的偏移量,offsetPlat是转换为米后的纬度上的偏移量。
在一个示例中,假设第一投影模型中的第一关注点在游戏引擎空间中坐标为(10000,10000,0),则可以根据第一关注点和游戏坐标原点对第一投影模型进行偏移,使第一投影模型的第一关注点偏移后位于游戏引擎控件的游戏坐标原点(0,0,0),即第一投影模型的第一关注点偏移后的坐标为(0,0,0)。
在本申请实施例中,渲染第二投影模型,可以包括如下步骤:
(1)对地理模型进行解析,获取地理模型对应的模型材质数据。其中地理模型可以为3dtiels格式,可以对地理模型进行解析,得到3dtiels数据中的材质数据。材质数据包括但不限于纹理(texture)、材质(material)等。
(2)基于模型材质数据对第二投影模型进行贴图,得到游戏引擎空间对应的待渲染模型;其中,贴图可以指把纹理(材质)映射到3D物体表面。
(3)创建待渲染模型对应的游戏引擎节点,将待渲染模型与对应游戏引擎节点绑定。其中,本申请中的游戏引擎节点可以是指游戏引擎空间的基本组件,模型需要与游戏引擎节点绑定,才能进行配置、操作和渲染。
在本申请实施例中,可以预先创建有包含预设数量的游戏引擎节点的节点队列,当需要将模型与游戏引擎节点绑定时,从预先创建好的节点队列中取出游戏引擎节点进行绑定。相较于现有技术中临时创建节点,本申请通过预先创建节点队列,可以更加快速地完成节点绑定,提高模型渲染效率。
(4)对绑定后的待渲染模型进行渲染。
其中,对绑定后的待渲染模型进行渲染之前,还可以包括如下步骤:检测绑定后的待渲染模型所占的内存;若绑定后的待渲染模型占的内存超过预设的内存阈值,则移除绑定后的待渲染模型。在一些实施例中,检测内存还可以是针对单个游戏引擎节点,可以在每次渲染新的游戏引擎节点时,检查该游戏引擎节点对应的渲染数据所占的内存是否超过预设限制,如果超过则将该游戏引擎节点移除。
通过以上渲染步骤可以在一定内存限制、并且不阻塞主线程的情况下渲染出与真实地理位置贴合的三维gis数据。
在实际应用场景中,作为示例,渲染偏移后的投影模型或者渲染在第一投影模型进行尺寸调整后的第二投影模型可以包括如下步骤:
(1)地理模型可以为3dtiles格式,可以对地理模型进行重投影,投影至使用空间直角坐标系的游戏引擎空间,得到第一投影模型。可以对第一投影模型进行偏移,得到偏移后的投影模型,还可以对偏移后的投影模型的尺寸进行调整,得到第二投影模型。第二投影模型也可以为3dtiles格式。
(2)第二投影模型可以包括多个模型网格,可以用解析地理模型后得到的模型材质数据对第二投影模型中的各个模型网格进行贴图(或组合),得到待渲染模型,待渲染模型的格式可以是游戏引擎空间可识别和渲染的格式,可以基于游戏引擎进行设置,本申请不作限制。
创建或从预先创建好的节点队列中取出待渲染模型所需的游戏引擎节点,将待渲染模型与游戏引擎节点绑定,并将绑定后的待渲染模型交给游戏引擎进行渲染。
本申请所提供的地理模型处理方法,除了处理三维模型数据,还可以处理二维模型数据,以下进行详细说明。
本申请实施例提供了一种可能的实现方式,基于地理模型的经纬度坐标将地理模型投影至使用空间直角坐标系的游戏引擎空间之后,方法还包括如下步骤:
(1)获取地理模型对应的投影地图;投影地图为与地理模型对应的、应用平面直角坐标系的二维数据。
其中,地理模型可以使用大地坐标,可以将将大地坐标的经度作为空间直角坐标系的Z轴,将纬度作为空间直角坐标系的X轴,将高度作为空间直角坐标系的Y轴。以经度和纬度构成的平面为基础,采用墨卡托投影将地理模型的经度和纬度转换成米,并且将高设置为0,得到二维真实地理地图。可以再将二维真实地理地图导入到游戏引擎空间,获取地理模型对应的投影地图。
具体的,采用墨卡托投影将经度和纬度转换为米制的公式如公式(1)和公式(2):
plon=2*PI*cos(2*PI/360*lon)*RADIUS/360 公式(1)
plat=2*PI*cos(2*PI/360*lat)*RADIUS/360 公式(2)
其中,plon表示单位转换为米后的经度,plat表示单位转换为米后的纬度,PI表示圆周率,RADIUS表示地球半径,cos表示余弦函数。
(2)对投影地图进行划分,得到至少两个地图瓦片。
其中,投影地图是一张二维地图。对于投影地图的使用方式而言,有时候用户需要看宏观的地图信息(如世界地图里每个国家的国界),有时候又要看很微观的地图信息(如导航时道路的路况信息),为此,可以对投影地图按照不同的层级进度进行划分,在最高级(层级为0)时,需要的信息最少,可以将投影地图整张图像作为第0层的地图瓦片;再下一级(层级为1),所需信息量变多,像素量是第0层地图瓦片的四倍,可以对第1层的图片,进行四等分划分,得到4个地图瓦片。再下一级(层级为2)时,对上一级每个地图瓦片继续四等分划分,得到16个地图瓦片,依此类推。
对地图瓦片的划分方法的示意图可以如图2所示。
得到多个地图瓦片后,可以对地图瓦片进行编号,目前,各大主流互联网地图商有不同的编号方式,本申请中对地图瓦片的编号方法不作限制。
(3)渲染至少两个地图瓦片中满足预设条件的地图瓦片,得到渲染后的投影地图。具体的,预设条件可以为层级精度满足预设精度要求并且在虚拟摄像机的可视范围之内。地图瓦片的筛选方法将在后文进行说明。
可以理解的是,上述根据地理模型(三维)投影,得到二维真实地理地图,再基于二维真实地理地图得到导入游戏引擎空间后的投影地图的方案流程仅作为一种可行的实施方案。实际上,并不限制获取二维真实地理地图的方案,可以根据预设的地图绘制工具直接获取二维真实地理地图,本申请对此不做限制。
在本申请实施例中,获取地理模型对应的投影地图,可以包括以下步骤:
(1)基于地理模型的经纬度坐标将地理模型投影至使用空间直角坐标系的游戏引擎空间,获取初始投影地图;
(2)确定初始投影地图中的第二关注点,基于第二关注点和游戏引擎空间的游戏坐标原点对初始投影地图进行偏移,并对偏移后的投影地图的尺寸进行调整,得到新的投影地图。
作为一个示例,将二维真实地理地图导入到游戏引擎空间,获取地理模型对应的投影地图可以包括以下步骤:确定针对二维真实地理地图的第二关注点;将第二关注点在二维真实地理地图中的坐标和游戏引擎空间的世界坐标系的原点之间的距离作为偏移量;将二维真实地理地图投影(导入)至游戏引擎空间,得到初始投影地图,基于偏移量对初始投影地图进行偏移,得到偏移后的投影地图;可以再对偏移后的投影地图的尺寸进行调整,得到新的投影地图。
上述流程与处理三维模型数据的过程类似,因此,此处仅简要说明。
在本申请实施例中,各个地图瓦片具有对应的层级精度;游戏引擎空间中存在预设的虚拟摄像机。
其中,投影地图是一张二维地图。对于投影地图的使用方式而言,有时候用户需要看宏观的地图信息(如世界地图里每个国家的国界),有时候又要看很微观的地图信息(如导航时道路的路况信息),为此,可以对投影地图按照不同的层级进度进行划分,在最高级(层级为0)时,需要的信息最少,可以将投影地图整张图像作为第0层的地图瓦片;再下一级(层级为1),所需信息量变多,像素量是第0层地图瓦片的四倍,可以对第1层的图片,进行四等分划分,得到4个地图瓦片。再下一级(层级为2)时,对上一级每个地图瓦片继续四等分划分,得到16个地图瓦片,依此类推。
得到多个地图瓦片后,可以对地图瓦片进行编号,目前,各大主流互联网地图商有不同的编号方式,本申请中对地图瓦片的编号方法不作限制。
在本申请实施例中,渲染至少两个地图瓦片中满足预设条件的地图瓦片,得到渲染后的投影地图,可以包括如下步骤:
(1)确定至少两个地图瓦片中层级精度满足预设精度要求并且在虚拟摄像机的可视范围之内的目标地图瓦片。
具体的,可以从第0层级开始,对每个地图瓦片进行逐一检测。层级精度满足预设的精度要求的地图瓦片可以包括但不限于以下两种情况:
(1)当前地图瓦片的显示精度大于层级精度,取当前地图瓦片的下一层级的瓦片作为层级精度满足预设的精度要求的地图瓦片;
(2)当前地图瓦片的显示精度小于层级精度,取当前地图瓦片的上一层级的瓦片作为层级精度满足预设的精度要求的地图瓦片。
其中,地图瓦片的显示精度和层级精度的值和游戏引擎空间的所设置的虚拟摄像机有关,其计算方式为现有技术,本申请不作限制。
确定出层级精度满足预设的精度要求的地图瓦片之后,可以检测满足精度要求的地图瓦片是否在虚拟摄像机的可视范围之类,将处于可视范围之内的地图瓦片作为目标地图瓦片。
具体的,地图瓦片的坐标可以由四个角的坐标组成,四个点可以组合成一个平面,可以通过确定平面是否与视锥体相交来确定地图瓦片是否在摄像机的可视范围之内。
相较于现有技术,本申请在计算需要加载的地图瓦片时,不仅考虑了地图瓦片的层级精度需满足条件,还考虑了虚拟摄像机的可视范围,即查找的是层级精度满足要求并且在虚拟摄像机可视范围之内的地图瓦片。
(2)将各个目标地图瓦片分别绑定游戏引擎空间的游戏引擎节点,并对绑定后的目标地图瓦片进行渲染。
在本申请实施例中,将各个目标地图瓦片分别绑定游戏引擎空间的游戏引擎节点,可以包括如下步骤:针对每个目标瓦片地图,从预设的节点序列中取出一个游戏引擎节点,将目标瓦片地图绑定至取出的游戏引擎节点。
具体的,如图3所示,可以在初始化时创建节点队列(瓦片节点队列),节点队列中的每个节点(node)可以是平等的。空闲节点的选取方案包括但不限于选取位于节点队列队首的空闲节点。
当地图瓦片从渲染列表移除时,可以回收节点至节点队列供下次使用。每一次从节点队列中取出节点时可以先检查节点队列中是否还有可用的节点,如果没有,则自动对节点队列进行扩容。
为了更清楚阐释本申请的地理模型处理方法,以下将结合具体示例对地理模型处理方法进行进一步说明。
本申请提供了一种地理模型处理方法,可以应用于游戏引擎,实现简单方便地将GIS数据根据应用需求在游戏引擎空间进行展示。
在实际应用场景中,本申请所提供的地理模型处理方法可以实现为游戏引擎插件,提供一种地理模型处理方法,使在游戏空间引擎展示真实GIS数据变得简单方便,并且有较好的展示效果。
具体的,本申请所提供的地理模型处理方法,根据所针对的GIS数据的不同维度可以分为两个部分:展示二维GIS数据的方法和展示三维GIS数据的方法。
本申请所提供的地理模型处理方法中的第一部分,在游戏引擎中展示二维GIS数据的方法可以如图4所示,包括如下步骤:
步骤S401,获取二维GIS数据,其中,二维GIS数据可以包括二维真实地理地图。二维真实地理地图可以由三维真实地理模型进行墨卡托投影获取。三维真实地理模型可以使用大地坐标系,由经度(lon)、纬度(lat)和高(height)组成;而二维真实地理地图可以使用平面直角坐标系。
具体的,获取二维GIS数据可以包括以下分步骤:
步骤S4011,将大地坐标的经度作为空间直角坐标系的Z轴,将纬度作为空间直角坐标系的X轴,将高度作为空间直角坐标系的Y轴。
步骤S4012,以经度和纬度构成的平面为基础,采用墨卡托投影,将经度和纬度转换成米,并且将高设置为0,得到二维真实地理地图。
在步骤S4012中,采用墨卡托投影将经度和纬度转换为米制的公式如公式(1)和公式(2):
plon=2*PI*cos(2*PI/360*lon)*RADIUS/360 公式(1)
plat=2*PI*cos(2*PI/360*lat)*RADIUS/360 公式(2)
其中,plon表示单位转换为米后的经度,plat表示单位转换为米后的纬度,PI表示圆周率,RADIUS表示地球半径,cos表示余弦函数。
步骤S402,将二维真实地理地图投影到游戏引擎空间,得到投影地图;具体的,可以包括以下分步骤:
步骤S4021,确定针对二维真实地理地图的关注点。具体的,用户可以通过游戏引擎中预设的用户界面设置关注点。例如,关注点可以设置为二维真实地理地图中任意城市的任一点。
步骤S4022,将关注点在二维真实地理地图中的坐标和游戏引擎空间的世界坐标系的原点之间的距离作为偏移量。
游戏引擎空间所使用的坐标系可以称作世界坐标系,世界可以用来表示游戏场景。而世界坐标系可以是游戏开发中表示场景空间内的统一坐标体系。
可以将关注点到游戏坐标原点在X轴和Z轴上距离分别作为纬度和经度上以米制为单位的偏移量。
步骤S4023,将二维真实地理地图投影(导入)至游戏引擎空间,得到初始投影地图,基于偏移量对初始投影地图进行偏移。
其中,基于偏移量对初始投影地图进行偏移可以通过对初始投影地图中的每个点进行偏移实现,偏移后的初始投影地图中每个点的坐标可以表示为公式(3)和公式(4):
plon=2*PI*cos(2*PI/360*lon)*RADIUS/360+offsetPlon 公式(3)
plat=2*PI*cos(2*PI/360*lat)*RADIUS/360+offsetPlat 公式(4)
其中,plon可以为初始投影地图中的任一点、转换为米后的经度,plat可以为任一点、转换为米后的纬度。PI表示圆周率,RADIUS表示地球半径,cos表示余弦函数。
offsetPlon表示转换为米后的经度上的偏移量,offsetPlat是转换为米后纬度上的偏移量。
可以对初始投影地图中的每个点的坐标都通过上述方式进行偏移,得到偏移后的初始投影地图。
步骤S4024,对偏移后的初始投影地图的尺寸进行调整,得到投影地图。
具体的,调整尺寸的方式包括但不限于将偏移后的初始投影地图中的每个点的坐标乘以预设的缩放系数。
步骤S403,对投影地图进行划分,得到多个地图瓦片,各个地图瓦片具有对应的层级精度。
其中,投影地图是一张二维地图。对于投影地图的使用方式而言,有时候用户需要看宏观的地图信息(如世界地图里每个国家的国界),有时候又要看微观的地图信息(如导航时道路的路况信息),为此,可以对投影地图按照不同的层级进度进行划分,在最高级(层级为0)时,需要的信息最少,可以将投影地图整张图像作为第0层的地图瓦片;再下一级(层级为1),所需信息量变多,像素量是第0层地图瓦片的四倍,可以对第1层的图片,进行四等分划分,得到4个地图瓦片。再下一级(层级为2)时,对上一级每个地图瓦片继续四等分划分,得到16个地图瓦片,依此类推。
得到多个地图瓦片后,可以对地图瓦片进行编号,目前,各大主流互联网地图商有不同的编号方式,本申请中对地图瓦片的编号方法不作限制。
步骤S404,确定地图瓦片中层级精度满足预设精度要求并且在虚拟摄像机的可视范围之内的目标地图瓦片。
具体的,可以从第0层级开始,对每个地图瓦片进行逐一检测。层级精度满足预设的精度要求的地图瓦片可以包括但不限于以下两种情况:
(3)当前地图瓦片的显示精度大于层级精度,取当前地图瓦片的下一层级的瓦片作为层级精度满足预设的精度要求的地图瓦片;
(4)当前地图瓦片的显示精度小于层级精度,取当前地图瓦片的上一层级的瓦片作为层级精度满足预设的精度要求的地图瓦片。
其中,地图瓦片的显示精度和层级精度的值和游戏引擎空间的所设置的虚拟摄像机有关,其计算方式为现有技术,本申请不作限制。
确定出层级精度满足预设的精度要求的地图瓦片之后,可以在检测满足精度要求的地图瓦片是否在虚拟摄像机的可视范围之类,将处于可视范围之内地图瓦片作为目标地图瓦片。
具体的,地图瓦片的坐标可以由四个角的坐标组成,四个点可以组合成一个平面,可以通过确定平面是否与视锥体相交来确定地图瓦片是否在摄像机的可视范围之内。
相较于现有技术,本申请在计算需要加载的地图瓦片时,不仅考虑了地图瓦片的层级精度需满足条件,还考虑了虚拟摄像机的可视范围,即查找的是层级精度满足要求并且在虚拟摄像机可视范围之内的地图瓦片。
步骤S405,针对每个目标地图瓦片,从初始化时创建的节点队列中取出预先创建好的节点,将目标地图瓦片绑定至节点,交给游戏引擎渲染。
其中,可以在初始化时创建节点队列,节点队列中的每个节点可以是平等的。空闲节点的选取方案包括但不限于选取节点队列队首的空闲节点。
当地图瓦片从渲染列表移除时,可以回收节点至节点队列供下次使用。每一次从节点队列中取出节点时可以先检查节点队列中是否还有可用的节点,如果没有,则自动对节点队列进行扩容。
本申请所提供的地理模型处理方法中的第二部分,在游戏引擎中展示三维GIS数据的方法可以如图5所示,包括如下步骤:
步骤S501,三维GIS数据的格式可以为3dtiles(三维瓦片)格式的地理模型,使用经纬度坐标系(例如WGS84标准)。可以基于地理模型的经纬度坐标将地理模型投影至使用空间直角坐标系的游戏引擎空间,得到第一投影模型。
其中,可以使用采用墨卡托投影将经度和纬度转换为米制,公式可以如前文中的公式(1)和公式(2)所示:
plon=2*PI*cos(2*PI/360*lon)*RADIUS/360 公式(1)
plat=2*PI*cos(2*PI/360*lat)*RADIUS/360 公式(2)
其中,plon表示单位转换为米后的经度,plat表示单位转换为米后的纬度,PI表示圆周率,RADIUS表示地球半径,cos表示余弦函数。
墨卡托投影技术已在加载二维GIS数据的方案中进行论述,此处不再重复进行说明。
上述公式中,对经度和纬度进行了转换,高度可以维持不变。
步骤S502,确定第一投影模型中的关注点,关注点可以由用户通过游戏引擎的用户界面进行设置,本申请不作限制。
例如,可以将关注点设置为厦门市的任一坐标点。
步骤S503,根据确定出的关注点和游戏引擎空间的游戏坐标原点对第一投影模型进行偏移。
具体的,对第一投影模型进行偏移可以通过对第一投影模型的各个网格进行偏移实现。
步骤S503中具体可以包括以下步骤:
S5031,确定第一投影模型中的各个网格的坐标数据。
具体的,第一投影模型可以由多个网格组成,可以从3dtiles数据中解析获取各个网格的顶点、法线坐标等。
S5032,可以将获取到的坐标数据放入WebWorker中进行重投影。
本申请中的重投影可以包括以下流程:
针对每一个需要进行偏移的坐标(包括但不限于顶点坐标和法线坐标),计算该坐标和游戏引擎空间的游戏坐标原点之间的距离确定偏移量,基于计算得到的偏移量对该坐标进行偏移,使得第一投影模型的关注点偏移后位于游戏引擎空间的游戏坐标原点。
可以理解的是,针对同一模型而言,其所有点的偏移量是相同的,因此,可以将关注点到游戏坐标原点在X轴和Z轴上距离分别作为纬度和经度上以米制为单位的偏移量。该偏移量可以作为同一个模型的所有点的偏移量,无需重复计算。
针对每一个需要进行偏移的坐标,确定出偏移量之后,进行偏移的公式可以表示为公式(3)和公式(4):
plon=2*PI*cos(2*PI/360*lon)*RADIUS/360+offsetPlon 公式(3)
plat=2*PI*cos(2*PI/360*lat)*RADIUS/360+offsetPlat 公式(4)
其中,plon可以为初始投影地图中的任一点、转换为米后的经度,plat可以为任一点、转换为米后的纬度。PI表示圆周率,RADIUS表示地球半径,cos表示余弦函数。
offsetPlon表示转换为米后的经度上的偏移量,offsetPlat是转换为米后纬度上的偏移量。
步骤S504,调整第一投影模型偏移后的的尺寸,得到第二投影模型,尺寸调整的方法包括但不限于将第一投影模型的各个坐标乘以预设的缩放系数。第二投影模型中的每个网格都经过了偏移和调整尺寸大小的操作。
例如,缩放系数可以为scale,则三维坐标乘以缩放系数后可以表示为:(x*scale,y*scale,z*scale)。这个缩放系数可以用来控制真实世界对应游戏引擎中的三维空间的整体大小,配合游戏引擎中的虚拟摄像机(camera)的far一起使用,用来解决超大地理空间范围的三维模型在游戏引擎中显示效果不佳的问题。其中,虚拟摄像机的far可以是指相机的远裁剪距离,应在可接受范围内尽量取最小。
当真实地理范围过大时,如果使用1单位=1米转换方法,会使得far过大,所以可以通过乘以缩放系数来减小far,提升显示效果。
步骤S505,可以从3dtiles数据(地理模型)中解析获取UV坐标、贴图等材质相关的数据,根据第二投影模型中的网格和解析得到的UV坐标、贴图等材质相关的数据重新构建网格,基于重新构建的网格和贴图组成待渲染模型。
步骤S506,创建待渲染模型对应的节点,将待渲染模型与节点绑定后交给渲染引擎进行渲染。
其中,每次渲染新的节点时,可以检测待渲染模型所占的内存是否超过预设内存限制,如果超过内存限制,则将待渲染模型移除。
通过以上渲染步骤可以在一定内存限制并且不阻塞主线程的情况下渲染出与真实地理位置贴合的三维GIS数据。
本申请实施例提供了一种地理模型处理装置,如图6所示,该地理模型处理装置60可以包括:模型投影模块601以及模型偏移模块602,其中,
模型投影模块601,获取待加载的地理模型,基于地理模型的经纬度坐标将地理模型投影至使用空间直角坐标系的游戏引擎空间,得到第一投影模型;
模型偏移模块602,确定第一投影模型中的第一关注点,基于第一关注点和游戏引擎空间的游戏坐标原点对第一投影模型进行偏移,使第一投影模型的第一关注点偏移后位于游戏引擎空间的游戏坐标原点。
上述的地理模型处理装置,获取待加载的地理模型,基于地理模型的经纬度坐标将地理模型投影至使用空间直角坐标系的游戏引擎空间,得到第一投影模型;然后确定第一投影模型中的第一关注点,可以基于第一关注点和游戏引擎空间的游戏坐标原点对第一投影模型进行偏移,使投影模型的第一关注点偏移后位于游戏引擎空间的游戏坐标原点。本申请通过对投影后的模型进行偏移,从而避免游戏引擎空间中因关注点离游戏坐标原点太远,java数据的计算产生误差,导致出现地图缝隙或者模型变形,较好地提升了模型加载效果。
在本申请实施例中,还包括模型渲染模块,具体用于:
对第一投影模型偏移后的尺寸进行调整,得到第二投影模型,渲染第二投影模型。
在本申请实施例中,模型偏移模块在基于第一关注点和游戏引擎空间的游戏坐标原点对第一投影模型进行偏移时,具体用于:
基于第一关注点在第一投影模型中的坐标和游戏引擎空间的游戏坐标原点之间的距离确定偏移量;
基于偏移量对第一投影模型进行偏移。
在本申请实施例中基于偏移量对第一投影模型进行偏移时,具体用于:
确定第一投影模型的每个模型网格的坐标数据;
基于偏移量对每个模型网格的坐标数据进行偏移,得到偏移坐标数据;
基于偏移坐标数据确定偏移后的各个模型网格,基于偏移后的各个模型网格形成偏移后的投影模型。
在本申请实施例中,模型渲染模块在渲染第二投影模型时,具体用于:
对地理模型进行解析,获取地理模型对应的模型材质数据;
基于模型材质数据对第二投影模型进行贴图,得到游戏引擎空间对应的待渲染模型;
创建待渲染模型对应的游戏引擎节点,将待渲染模型与对应游戏引擎节点绑定;
对绑定后的待渲染模型进行渲染。
在本申请实施例中,对绑定后的待渲染模型进行渲染之前,还包括内存检测模块,具体用于:
检测绑定后的待渲染模型所占的内存;
若绑定后的待渲染模型占的内存超过预设的内存阈值,移除绑定后的待渲染模型。
在本申请实施例中,基于地理模型的经纬度坐标将地理模型投影至使用空间直角坐标系的游戏引擎空间之后,还包括地图处理模块,具体用于:
获取地理模型对应的投影地图;投影地图为与地理模型对应的、应用平面直角坐标系的二维数据;
对投影地图进行划分,得到至少两个地图瓦片;
渲染至少两个地图瓦片中满足预设条件的地图瓦片,得到渲染后的投影地图。
在本申请实施例中,地图处理模块在获取地理模型对应的投影地图时,具体用于:
基于地理模型的经纬度坐标将地理模型投影至使用空间直角坐标系的游戏引擎空间,获取初始投影地图;
确定初始投影地图中的第二关注点,基于第二关注点和游戏引擎空间的游戏坐标原点对初始投影地图进行偏移,并对偏移后的投影地图的尺寸进行调整,得到新的投影地图。
在本申请实施例中,各个地图瓦片具有对应的层级精度;游戏引擎空间中存在预设的虚拟摄像机;
地图处理模块在渲染至少两个地图瓦片中满足预设条件的地图瓦片,得到渲染后的投影地图时,具体用于:
确定至少两个地图瓦片中层级精度满足预设精度要求并且在虚拟摄像机的可视范围之内的目标地图瓦片;
将各个目标地图瓦片分别绑定游戏引擎空间的游戏引擎节点,并对绑定后的目标地图瓦片进行渲染。
在本申请实施例中,地图处理模块在将各个目标地图瓦片分别绑定游戏引擎空间的游戏引擎节点时,具体用于:
针对每个目标瓦片地图,从预设的节点序列中取出一个游戏引擎节点,将目标瓦片地图绑定至取出的游戏引擎节点。
本申请实施例的装置可执行本申请实施例所提供的方法,其实现原理相类似,本申请各实施例的装置中的各模块所执行的动作是与本申请各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
本申请实施例中提供了一种电子设备(计算机装置/设备/系统),包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现地理模型处理方法的步骤,与相关技术相比可实现:通过对投影后的模型进行偏移,使第一关注点偏移后位于游戏引擎空间的游戏坐标原点,从而避免游戏引擎空间中因关注点离游戏坐标原点太远,java数据的计算产生误差,导致出现地图缝隙或者模型变形,较好地提升了模型加载效果。
在一个可选实施例中提供了一种电子设备,如图7所示,图7所示的电子设备4000包括:处理器4001和存储器4003。其中,处理器4001和存储器4003相连,如通过总线4002相连。可选地,电子设备4000还可以包括收发器4004,收发器4004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器4004不限于一个,该电子设备4000的结构并不构成对本申请实施例的限定。
处理器4001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器4003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
存储器4003用于存储执行本申请实施例的计算机程序,并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的计算机程序,以实现前述方法实施例所示的步骤。
其中,电子设备包括但不限于:移动电话、笔记本电脑、PAD等等移动终端以及诸如数字TV、台式计算机等等固定终端。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本申请实施例还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”、“1”、“2”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除图示或文字描述以外的顺序实施。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上所述仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。
Claims (13)
1.一种地理模型处理方法,其特征在于,包括:
获取待加载的地理模型,基于所述地理模型的经纬度坐标将所述地理模型投影至使用空间直角坐标系的游戏引擎空间,得到第一投影模型;
确定所述第一投影模型中的第一关注点,基于所述第一关注点和所述游戏引擎空间的游戏坐标原点对所述第一投影模型进行偏移,使所述第一投影模型的第一关注点偏移后位于所述游戏引擎空间的游戏坐标原点。
2.根据权利要求1所述的地理模型处理方法,其特征在于,所述方法还包括:
调整所述第一投影模型进行偏移后的尺寸,得到第二投影模型,渲染所述第二投影模型。
3.根据权利要求1所述的地理模型处理方法,其特征在于,所述基于所述第一关注点和所述游戏引擎空间的游戏坐标原点对所述第一投影模型进行偏移,包括:
基于所述第一关注点在所述第一投影模型中的坐标和所述游戏引擎空间的游戏坐标原点之间的距离确定偏移量;
基于所述偏移量对所述第一投影模型进行偏移。
4.根据权利要求3所述的地理模型处理方法,其特征在于,所述基于所述偏移量对所述第一投影模型进行偏移,包括:
确定所述第一投影模型的每个模型网格的坐标数据;
基于所述偏移量对所述每个模型网格的坐标数据进行偏移,得到偏移坐标数据;
基于所述偏移坐标数据确定偏移后的各个模型网格,基于偏移后的各个模型网格形成偏移后的投影模型。
5.根据权利要求2所述的地理模型处理方法,其特征在于,所述渲染所述第二投影模型,包括:
对所述地理模型进行解析,获取所述地理模型对应的模型材质数据;
基于所述模型材质数据对所述第二投影模型进行贴图,得到所述游戏引擎空间对应的待渲染模型;
创建所述待渲染模型对应的游戏引擎节点,将所述待渲染模型与对应游戏引擎节点绑定;
对绑定后的待渲染模型进行渲染。
6.根据权利要求5所述的地理模型处理方法,其特征在于,所述对绑定后的待渲染模型进行渲染之前,所述方法还包括:
检测所述绑定后的待渲染模型所占的内存;
若所述绑定后的待渲染模型占的内存超过预设的内存阈值,移除所述绑定后的待渲染模型。
7.根据权利要求1-6任一项所述的地理模型处理方法,其特征在于,所述基于所述地理模型的经纬度坐标将所述地理模型投影至使用空间直角坐标系的游戏引擎空间之后,所述方法还包括:
获取所述地理模型对应的投影地图;所述投影地图为与所述地理模型对应的、应用平面直角坐标系的二维数据;
对所述投影地图进行划分,得到至少两个地图瓦片;
渲染所述至少两个地图瓦片中满足预设条件的地图瓦片,得到渲染后的投影地图。
8.根据权利要求7所述的地理模型处理方法,其特征在于,所述获取所述地理模型对应的投影地图,包括:
基于所述地理模型的经纬度坐标将所述地理模型投影至使用空间直角坐标系的游戏引擎空间,获取初始投影地图;
确定所述初始投影地图中的第二关注点,基于所述第二关注点和所述游戏引擎空间的游戏坐标原点对所述初始投影地图进行偏移,并对偏移后的投影地图的尺寸进行调整,得到新的投影地图。
9.根据权利要求8所述的地理模型处理方法,其特征在于,各个地图瓦片具有对应的层级精度;所述游戏引擎空间中存在预设的虚拟摄像机;
所述渲染所述至少两个地图瓦片中满足预设条件的地图瓦片,得到渲染后的投影地图,包括:
确定所述至少两个地图瓦片中层级精度满足预设精度要求并且在所述虚拟摄像机的可视范围之内的目标地图瓦片;
将各个目标地图瓦片分别绑定所述游戏引擎空间的游戏引擎节点,并对绑定后的目标地图瓦片进行渲染。
10.根据权利要求9所述的地理模型处理方法,其特征在于,所述将各个目标地图瓦片分别绑定所述游戏引擎空间的游戏引擎节点,包括:
针对每个目标瓦片地图,从预设的节点序列中取出一个游戏引擎节点,将所述目标瓦片地图绑定至取出的游戏引擎节点。
11.一种地理模型处理装置,其特征在于,包括:
模型投影模块,获取待加载的地理模型,基于所述地理模型的经纬度坐标将所述地理模型投影至使用空间直角坐标系的游戏引擎空间,得到第一投影模型;
模型偏移模块,确定所述第一投影模型中的第一关注点,基于所述第一关注点和所述游戏引擎空间的游戏坐标原点对所述第一投影模型进行偏移,使所述第一投影模型的第一关注点偏移后位于所述游戏引擎空间的游戏坐标原点。
12.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-10任一项所述方法的步骤。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-10任一项所述的地理模型处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210798596.9A CN115187709A (zh) | 2022-07-06 | 2022-07-06 | 地理模型处理方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210798596.9A CN115187709A (zh) | 2022-07-06 | 2022-07-06 | 地理模型处理方法、装置、电子设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115187709A true CN115187709A (zh) | 2022-10-14 |
Family
ID=83517121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210798596.9A Pending CN115187709A (zh) | 2022-07-06 | 2022-07-06 | 地理模型处理方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115187709A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117171288A (zh) * | 2023-11-02 | 2023-12-05 | 中国地质大学(武汉) | 一种栅格地图解析方法、装置、设备和介质 |
-
2022
- 2022-07-06 CN CN202210798596.9A patent/CN115187709A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117171288A (zh) * | 2023-11-02 | 2023-12-05 | 中国地质大学(武汉) | 一种栅格地图解析方法、装置、设备和介质 |
CN117171288B (zh) * | 2023-11-02 | 2024-01-12 | 中国地质大学(武汉) | 一种栅格地图解析方法、装置、设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9542770B1 (en) | Automatic method for photo texturing geolocated 3D models from geolocated imagery | |
CN106530218B (zh) | 一种坐标转换方法及装置 | |
KR101994317B1 (ko) | 네비게이션 장치, 고도 좌표를 결정하는 방법 및 데이터베이스를 생성하는 방법 | |
US20120050285A1 (en) | 3d building generalization for digital map applications | |
RU2298227C2 (ru) | Способ отображения трехмерного многоугольника на экране | |
US20130127852A1 (en) | Methods for providing 3d building information | |
CN106326334A (zh) | 一种电子地图的显示、生成方法和装置 | |
CN108958462A (zh) | 一种虚拟对象的展示方法及装置 | |
KR20120122939A (ko) | 데이터베이스 생성 방법, 네비게이션 장치, 및 높이 정보 판정 방법 | |
CN102779165A (zh) | 栅格地图图片库的建立方法 | |
CN110910504A (zh) | 区域的三维模型的确定方法及装置 | |
CN111639149A (zh) | 海洋数据可视化方法和装置 | |
CN103123263A (zh) | 导航电子地图的显示方法及装置 | |
CN103914521A (zh) | 基于混合瓦片金字塔的街景影像存储的方法及装置 | |
EP2589933A1 (en) | Navigation device, method of predicting a visibility of a triangular face in an electronic map view, and method for generating a database | |
CN115187709A (zh) | 地理模型处理方法、装置、电子设备及可读存储介质 | |
CN111127661B (zh) | 一种数据处理方法、装置及电子设备 | |
CN113360594A (zh) | 基于数字高程模型的汇水区提取方法、装置、设备及介质 | |
She et al. | An efficient method for rendering linear symbols on 3D terrain using a shader language | |
US20100026683A1 (en) | Method and program of visualizing structured grid data | |
CN107703537B (zh) | 一种炮检点在三维地表上的展示方法及装置 | |
CN115409962A (zh) | 虚幻引擎内构建坐标系统的方法、电子设备和存储介质 | |
CN115409960A (zh) | 基于虚幻引擎的模型构建方法、电子设备和存储介质 | |
CN115511701A (zh) | 一种地理信息的转换方法及装置 | |
JP3940834B2 (ja) | 数値地図情報データを用いた解析作業支援cae装置 |
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 |