一种基于CIM的海量POI数据的高性能加载方法与流程

文档序号:32162532发布日期:2022-11-12 03:08阅读:106来源:国知局
一种基于CIM的海量POI数据的高性能加载方法与流程
一种基于cim的海量poi数据的高性能加载方法
技术领域
1.本发明涉及cim技术和webgis技术领域,尤其涉及一种基于cim的海量poi数据的高性能加载方法。


背景技术:

2.cim技术:
3.城市信息模型是以建筑信息模型(bim)、地理信息系统(gis)、物联网(iot)等技术为基础,整合城市地上地下、室内室外、历史现状未来多维多尺度信息模型数据和城市感知数据,构建起三维数字空间的城市信息有机综合体。
4.webgis技术:
5.webgis(网络地理信息系统)是指工作在web网上的gis,是传统的gis在网络上的延伸和发展,具有传统gis的特点,可以实现空间数据的检索、查询、制图输出、编辑等gis基本功能,同时也是internet上地理信息发布、共享和交流协作的基础。
6.对于批量poi数据的上图展示通常有两种方案。方案一为,对于在地图场景中加载批量的poi数据通用的解决方案为通过地图服务器发布ogc等相关类型的地图服务,如wms地图服务,但是采用此方案会存在三个问题,一个是采用地图服务的形式,数据处理过程由后台服务器负责,在前端是通过图片的形式展示的,鼠标滑过无法展示出即时交互反馈的效果。另外数据必须采用空间数据的方式存储,导致功能实现必须配备专业的gis人员,无法实现技术的普适性。第三,在小比例尺地图下,优于数据量过大导致poi点数据重叠严重,可视化效果很差。方案二为,采用前端加载的方式,直接将poi数据上图展示的方式,采用此方式能解决鼠标交互无反馈的问题,但是由于数据量过大会导致加载时间漫长,用户体验感差的问题,在次此方案基础上有通过前端聚合的方式来解决数据加载缓慢的问题,但是前端聚合同样是要前端对大数据量进行分类聚合,加载效率反而减低很多。


技术实现要素:

7.为了解决以上技术问题,本发明提供了一种基于cim的海量poi数据的高性能加载方法。本方法在实现过程中借鉴了一部分ogc标准的实现原理,对空间数据库中存储的poi数据和非空间的结构化数据库中存储的poi数据,在小比例尺地图下从服务端进行分区域聚合,前端展示聚合后的效果,提升了加载效率和可视化效果,在大比例尺地图下因数据量较小,采用前端加载的方式直接加载poi数据。通过此方法可实现任意比例尺地图下的海量poi数据的高性能加载。
8.本发明的技术方案是:
9.一种基于cim的海量poi数据的高性能加载方法,在前端通过对cim地图场景进行按网格化的区域划分,在服务器端对每一个网格范围内的poi点数据进行聚合分析,最后将聚合得到的结果数据传输到前端,供前端cim场景进行展示和调用。
10.进一步的,
11.web端发起poi数据加载请求由web前端根据可视化展示的业务场景,发起具体的poi数据展示需求到数据层,请求数据的加载和展示。通常在地图记载、缩放和移动的过程中都会发起此请求。对于屏幕范围外的poi数据加载展示没有意义,而且会降低加载性能,所以需要通过屏幕坐标求取对应的地理坐标的坐标四至,筛选出屏幕范围内的poi数据。
12.屏幕对应坐标系统的四至获取:
13.发起请求后,首选需要通过前端算法取得屏幕四角对应的地理坐标系统的坐标,即可分别获得经纬度的最大值和最小值。此数据的获取,一般可通过webgis api获得,如openlayers等。对于poi数据我们只加载此屏幕范围内的数据,在此状态下,加载屏幕外的poi数据在当前场景中并看不到,一方面影响展示的性能,另一方面对业务需求是没有意义的。通过获得屏幕的四至地理坐标对范围内的poi数据进行筛选,减少数据量的加载量。
14.判断地图比例尺首选应该判断地图的比例尺,对于大比例尺地图可以直接加载poi数据,对于小比例地图需要进行进一步的网格化操作。
15.划分数据网格:
16.然后通过对cim场景的网格化划分,网格的划分数量可针对屏幕的长宽和场景的范围比进行自定义。针对一般为1080*1902分辨率的屏幕,我们可以将当前屏幕的可视范围划分为横6竖8的网格。
17.进一步的,
18.网格内数据聚合:
19.再针对每个网格内的数据采用网格质心算法进行聚合,具体过程如下:分别针对每一个网格中的所有poi数据求经度(x)和纬度(y)的平均,求得得x、y得结果值,即为该网格内聚合点的位置。
20.分别为点i的经纬度坐标值,n为网格内点的个数此聚合的过程均在服务器端完成,可充分利用服务器端的资源。
21.进一步的,
22.数据加载:
23.将筛选并计算后的结果数据传输到前端,前端无需针对数据进行二次计算,只需完成数据的加载工作即可;
24.数据加载完成后,借助前端展示的能力,可实现自定义的交互特效展示。
25.最后将聚合好的数据,通过web接口传输到前端供浏览器展示,在此基础上可增加交互性功能,鼠标滑过图标放大图标,鼠标划走恢复原状;可点击非聚合的poi展示poi的详细信息。
26.场景拖动或放大缩小:
27.在对场景进行拖动或放大缩小的操作时,需重新计算四至坐标,重新获得新的poi聚合效果。
28.本发明的有益效果是
29.(1)通过此方法实现的海量poi数据加载,打破了传统意义上的通过ogc标准服务来加载poi数据的方法,实现了一种交互灵活,展示效果美观,展示效率高的方法。
30.(2)通过将地图场景进行网格化划分,降低了数据量,在每一个网格进行单独运
算,且运算过程是在服务器端进行计算,只把少量的最后的计算结果传输到前端,充分利用了服务器端的运行效率,极大程度降低了前端的加载压力。
附图说明
31.图1是本发明的工作流程示意图。
具体实施方式
32.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
33.本发明公开了一种高性能的海量poi数据在cim场景中加载的方法,用于解决传统gis服务器发布的poi图层服务交互不灵活和浏览器对poi数据加载数量有限制的问题。
34.本方法采用以下的技术手段,如图1所示:
35.(1)发起poi数据展示请求
36.由web前端根据可视化展示的业务场景,发起具体的poi数据展示需求到数据层,请求数据的加载和展示。通常在地图记载、缩放和移动的过程中都会发起此请求。
37.(2)屏幕对应坐标系统的四至获取
38.请求发起后,首选需要通过前端算法取得屏幕四角对应的地理坐标系统的坐标,即可分别获得经纬度的最大值和最小值。此数据的获取,一般可通过webgis api获得。对于poi数据我们只加载此屏幕范围内的数据,在此状态下,加载屏幕外的poi数据多我们的业务是没有意义的,通过获得屏幕的四至地理坐标对范围内的数据进行第一次筛选,减少数据量的加载量。
39.(3)判断地图比例尺
40.判断地图比例尺首选应该判断地图的比例尺,对于大比例尺地图可以直接加载poi数据,对于小比例地图需要进行进一步的网格化操作。
41.(4)划分数据网格
42.然后通过对cim场景的网格化划分,网格的划分数量可针对屏幕的长宽和场景的范围比进行自定义。针对一般为1080*1902分辨率的屏幕,我们可以将当前屏幕的可视范围划分为横6竖8的网格。
43.(5)网格内数据聚合
44.再针对每个网格内的数据采用网格质心算法进行聚合,具体过程如下:分别针对每一个网格中的所有poi数据求经度(x)和纬度(y)的平均,求得得x、y得结果值,即为该网格内聚合点的位置。
45.分别为点i的经纬度坐标值,n为网格内点的个数此聚合的过程均在服务器端完成,可充分利用服务器端的资源。
46.(6)前端数据加载展示
47.最后将聚合好的数据,通过web接口传输到前端供浏览器展示,在此基础上我们可
以增加许多交互性功能,鼠标滑过图标放大图标,鼠标划走恢复原状。可点击非聚合的poi展示poi的详细信息。
48.(7)场景拖动或放大缩小
49.在对场景进行拖动或放大缩小的操作时,需重新计算四至坐标,重复步骤(2)、(3)、(4)、(5)、(6)获得新的poi聚合效果。
50.以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1