一种支持多种地理空间坐标系瓦片地图的加载方法和系统技术方案

技术编号:39816685 阅读:5 留言:0更新日期:2023-12-22 19:35
本发明专利技术提供一种支持多种地理空间坐标系瓦片地图的加载方法和系统,其中方法中根据地图视口范围确定服务的坐标系下的瓦片行列号,结合地图俯仰角大小,采用不同的请求策略,然后根据瓦片服务的坐标系,对瓦片逐个进行动态重投影

【技术实现步骤摘要】
一种支持多种地理空间坐标系瓦片地图的加载方法和系统


[0001]本专利技术属于地图瓦片调度和可视化
,尤其涉及一种支持多种地理空间坐标系瓦片地图的加载方法和系统


技术介绍

[0002]随着三维
GIS
的发展,地图由二维升级为三维,地图视角不再局限于俯视,需要满足平视甚至仰视的需求

二维地图中的瓦片地图依旧是三维地图的重要组成部分,而随着地图视角的扩展,地图视口覆盖范围越来越大,给瓦片地图的渲染带来了极大挑战

此外,除了规定的
CGCS2000

China Geodetic Coordinate System 2000

CGCS2000
)国家大地坐标系,地方也存在
2000
相对独立的平面坐标系统,还有
CGCS 2000
墨卡托投影

高斯克吕格投影等不同坐标系

如何既能支持多种坐标系瓦片服务加载,又能保证渲染性能,成为
GIS
领域三维地图引擎研发的一个重点

[0003]目前,二维开源地图引擎,如
OpenLayers
,支持地图重投影,解决了不同坐标系的实时加载

但开源三维地图引擎如
Mapbox、Cesium
等,仅支持一种坐标系瓦片地图加载,不能同时加载几种坐标系服务,无法满足使用需求

[0004]申请公布号为
CN110851558A
的专利公开了一种地方坐标系地图通用加载方法,根据地图范围计算要加载的地方坐标系地图瓦片,通过坐标转换,实现瓦片绘制

这一方案虽然基于开源三维地图引擎
Mapbox
,解决了不同坐标系地图服务加载的问题,但当时
Mapbox
框架支持的最大倾斜角为
60
度,当地图视角扩展到
85
度(接近平视)甚至更多后,如果仍请求同一层级的瓦片,地图会因为瓦片请求量过多而出现卡顿,没有解决三维地图中高性能加载不同坐标系瓦片地图的问题


技术实现思路

[0005]本专利技术针对现有技术中的不足,提供一种支持多种地理空间坐标系瓦片地图的加载方法和系统

[0006]第一方面,本专利技术提供一种支持多种地理空间坐标系瓦片地图的加载方法,包括:获取当前默认坐标系下视口范围的左下角坐标和为右上角坐标;将当前默认坐标系下视口范围的左下角坐标和为右上角坐标转换为目标坐标系下视口范围的左下角坐标和为右上角坐标;其中目标坐标系为为瓦片服务的坐标系;根据目标坐标系下视口范围的左下角坐标和为右上角坐标确定当前层级下视口范围内所有瓦片行列号,以作为第一瓦片行列号;判断当前默认坐标系下视口俯仰角是否大于预设角度阈值;如果否,则直接加载当前层级视口内的所有瓦片;如果是,则确定覆盖瓦片渲染范围一半区域所需的地图瓦片数量;以平视视角下覆盖瓦片渲染范围一半区域所需的瓦片数量为基准,根据地图相机的方向角和第一瓦片行列号,确定当前层级下视口范围内新的瓦片行列号,以作为第二瓦
片行列号;根据第二瓦片行列号确定每张瓦片四个顶点的坐标;将所有不重复瓦片的顶点坐标转换为屏幕坐标,以完成屏幕上瓦片的绘制

[0007]进一步地,所述根据目标坐标系下视口范围的左下角坐标和为右上角坐标确定当前层级下视口范围内所有瓦片行列号,以作为第一瓦片行列号,包括:根据以下公式计算当前层级下视口范围内瓦片的最小行列号
(minX , minY )
和最大行列号
(maxX , maxY )
:;其中,
(x 0, y 0)
为瓦片服务的地图切图原点坐标;
r
为当前地图层级服务对应瓦片的分辨率;
t
为单张瓦片大小;
s' [0]为视口范围内
x
方向最小值;
w' [1]为视口范围内
y
方向最小值;
e' [0]为视口范围内
x
方向最大值;
n' [1]为视口范围内
y
方向最大值;为向上取整符号,为向下取整符号;遍历最小行列号和最大行列号之间的所有整数,得到当前层级下视口范围内所有瓦片行列号

[0008]进一步地,所述确定覆盖瓦片渲染范围一半区域所需的地图瓦片数量,包括:根据以下公式计算地图相机至地图中心的距离
D

D = (h /2)/tan( f /2)
;其中,
h
为当前层级视口的高度;
f 为地图相机的垂直视角;在视线与地图平行情况下,根据以下公式计算覆盖瓦片渲染范围一半区域所需地图瓦片数量
N

N=D/t
;其中,
t
为单张瓦片大小

[0009]进一步地,所述以平视视角下覆盖瓦片渲染范围一半区域所需的瓦片数量为基准,根据地图相机的方向角和第一瓦片行列号,确定当前层级下视口范围内新的瓦片行列号,以作为第二瓦片行列号,包括:在地图相机的方向角为
[

45
°
,45
°
)
的情况下,根据以下公式计算瓦片层级变化差值
d1:;其中,
maxY
为当前层级下视口范围内瓦片的最大行号;
y
为瓦片的行号;
N
为覆盖瓦片渲染范围一半区域所需的地图瓦片数量;在地图相机的方向角为
[45
°
,135
°
)
的情况下,根据以下公式计算瓦片层级变化差

d2:;其中,
min X
为当前层级下视口范围内瓦片的最小列号;
x
为瓦片的列号;在地图相机的方向角为
[135
°
,180
°
)

[

180
°
,

135
°
)
的情况下,根据以下公式计算瓦片层级变化差值
d3:;其中,
minY
为当前层级下视口范围内瓦片的最小行号;在地图相机的方向角为
[

135
°
,

45
°
)
的情况下,根据以下公式计算瓦片层级变化差值
d4:;其中,
max X
为当前层级下视口范围内瓦片的最小列号;根据以下公式计算第二瓦片行列号以及第二瓦片行列号所在的层级:;其中,
z' 为第二瓦片行列号所在的层级;
z
为第一瓦片行列号所在的层级;
d
i
为第
i<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种支持多种地理空间坐标系瓦片地图的加载方法,其特征在于,包括:获取当前默认坐标系下视口范围的左下角坐标和为右上角坐标;将当前默认坐标系下视口范围的左下角坐标和为右上角坐标转换为目标坐标系下视口范围的左下角坐标和为右上角坐标;其中目标坐标系为为瓦片服务的坐标系;根据目标坐标系下视口范围的左下角坐标和为右上角坐标确定当前层级下视口范围内所有瓦片行列号,以作为第一瓦片行列号;判断当前默认坐标系下视口俯仰角是否大于预设角度阈值;如果否,则直接加载当前层级视口内的所有瓦片;如果是,则确定覆盖瓦片渲染范围一半区域所需的地图瓦片数量;以平视视角下覆盖瓦片渲染范围一半区域所需的瓦片数量为基准,根据地图相机的方向角和第一瓦片行列号,确定当前层级下视口范围内新的瓦片行列号,以作为第二瓦片行列号;根据第二瓦片行列号确定每张瓦片四个顶点的坐标;将所有不重复瓦片的顶点坐标转换为屏幕坐标,以完成屏幕上瓦片的绘制
。2.
根据权利要求1所述的支持多种地理空间坐标系瓦片地图的加载方法,其特征在于,所述根据目标坐标系下视口范围的左下角坐标和为右上角坐标确定当前层级下视口范围内所有瓦片行列号,以作为第一瓦片行列号,包括:根据以下公式计算当前层级下视口范围内瓦片的最小行列号
(minX,minY)
和最大行列号
(maxX,maxY)
:;其中,
(x0,y0)
为瓦片服务的地图切图原点坐标;
r
为当前地图层级服务对应瓦片的分辨率;
t
为单张瓦片大小;
s'[0]
为视口范围内
x
方向最小值;
w'[1]
为视口范围内
y
方向最小值;
e'[0]
为视口范围内
x
方向最大值;
n'[1]
为视口范围内
y
方向最大值;为向上取整符号,为向下取整符号;遍历最小行列号和最大行列号之间的所有整数,得到当前层级下视口范围内所有瓦片行列号
。3.
根据权利要求1所述的支持多种地理空间坐标系瓦片地图的加载方法,其特征在于,所述确定覆盖瓦片渲染范围一半区域所需的地图瓦片数量,包括:根据以下公式计算地图相机至地图中心的距离
D

D=(h/2)/tan(f/2)
;其中,
h
为当前层级视口的高度;
f
为地图相机的垂直视角;在视线与地图平行情况下,根据以下公式计算覆盖瓦片渲染范围一半区域所需地图瓦
片数量
N

N=D/t
;其中,
t
为单张瓦片大小
。4.
根据权利要求1所述的支持多种地理空间坐标系瓦片地图的加载方法,其特征在于,所述以平视视角下覆盖瓦片渲染范围一半区域所需的瓦片数量为基准,根据地图相机的方向角和第一瓦片行列号,确定当前层级下视口范围内新的瓦片行列号,以作为第二瓦片行列号,包括:在地图相机的方向角为
[

45
°
,45
°
)
的情况下,根据以下公式计算瓦片层级变化差值
d1:;其中,
maxY
为当前层级下视口范围内瓦片的最大行号;
y
为瓦片的行号;
N
为覆盖瓦片渲染范围一半区域所需的地图瓦片数量;在地图相机的方向角为
[45
°
,135
°
)
的情况下,根据以下公式计算瓦片层级变化差值
d2:;其中,
minX
为当前层级下视口范围内瓦片的最小列号;
x
为瓦片的列号;在地图相机的方向角为
[135
°
,180
°
)

[

180
°
,

135
°
)
的情况下,根据以下公式计算瓦片层级变化差值
d3:;其中,
minY
为当前层级下视口范围内瓦片的最小行号;在地图相机的方向角为
[

135
°
,

45
°
)
的情况下,根据以下公式计算瓦片层级变化差值
d4:;其中,
maxX
为当前层级下视口范围内瓦片的最小列号;根据以下公式计算第二瓦片行列号以及第二瓦片行列号所在的层级:;其中,
z'
为第二瓦片行列号所在的层级;
z
为第一瓦片行列号所在的层级;
d
i
为第
i
个瓦片层级变化差值;
i=1,2,3,4

x'
为新的瓦片列号;
y'
为新的瓦片行号
。5.
根据权利要求1所述的支持多种地理空间坐标系瓦片地图的加载方法,其特征在于,所述根据第二瓦片行列号确定每张瓦片四个顶点的坐标,包括:根据以下公式计算每张瓦片四个顶点的坐标:
;其中,四个顶点的坐标分别为
(west , north)、(east , north)、(east , sourth)

(west , sourth)

x'
为新的瓦片列号;
y'
为新的瓦片行号;
t 为单张瓦片大小;
r 为当前地图层级服务对应瓦片的分辨率;
(x0,y0)
为瓦片服务的地图切图原点坐标
。6.
一种支持多种地理空间坐标系瓦片地图的加载系统,其特征在于,包括:坐标获取模块,用于获取当前...

【专利技术属性】
技术研发人员:陈静钱程扬王一梅蒋如乔夏伟王聪
申请(专利权)人:园测信息科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1