背景:
項目中地圖瓦片請求影響頁面加載效率,記錄下地圖性能優化的方案
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