地图性能优化思路整理

背景:
项目中地图瓦片请求影响页面加载效率,记录下地图性能优化的方案

GIS平台及客户端:SuperMap iDesktop、SuperMap iServer、SuperMap iClient for openlayers

1、地图数据层

SuperMap  iDesktop提供了监测地图显示和查询的性能工具,通过该工具可检测出当前地图的耗时情况,帮助用户更直观的监测地图性能的详细情况。影响二维地图性能的因素主要有:空间数据是否优化、地图数据正确性和复杂度、地图属性设置、缓存使用和网速等等。影响地图查询耗时的主要因素有:空间索引和字段索引,而影响地图绘制耗时的因素较多。具体优化措施可参考:http://support.supermap.com.cn/DataWarehouse/WebDocHelp/iDesktop/SuperMap_iDesktop_10i.htm

2、GIS服务端

SuperMap iServer 配置开启REST 地图服务使用缓存,同样参数的地图请求,可直接访问服务端已生成的缓存,减少服务端查询切图的时间。地图瓦片的生成有2种方式:1、idesktop中对地图切缓存,将瓦片copy到服务端发布服务  2、iserver上对已发布好的地图服务切缓存。

3、GIS客户端

SuperMap iClient  for openlayers 作为客户端开发SDK,可在请求GIS地图服务的时候,控制瓦片尺寸(默认256*256),若改为[512*512],同一块屏幕,地图请求数量减少一半,提高加载显示性能

 var layer = new ol.layer.Tile({
                source: new ol.source.TileSuperMapRest({
                    url: url,
                    wrapX: true,
                    //tileGrid: tileInfo.tileGrid,
                    tileGrid: new ol.tilegrid.TileGrid({
                        origin: [114.02684, 22.6885482], // 设置原点坐标
                        resolutions: [1 / 591658711, 1 / 295829355, 1 / 147914678, 1 /
                            73957339, 1 / 36978669, 1 / 18489335, 1 / 9244667, 1 /
                            4622334, 1 / 2311167, 1 / 1155583, 1 / 577792, 1 /
                            288896, 1 / 144448, 1 / 72224, 1 / 36112, 1 / 18056, 1 /
                            9028, 1 / 4514, 1 / 2257, 1 / 1128
                        ],
                        extent: [114.02684, 22.629626560956957, 114.09062677092285,
                            22.6885482
                        ],
                        tileSize: [256, 256], //修改地图瓦片的默认尺寸-[512,512]
                    }),
                }),
            });
            map.addLayer(layer);

  

4、浏览器缓存  --待补充

参考:
1、https://blog.csdn.net/weixin_34384681/article/details/91933464

2、https://www.cnblogs.com/liqing1009/p/5882133.html

原文地址:https://www.cnblogs.com/yaohuimo/p/14382415.html