一、背景
最近有小伙伴遇到了大数据量地图加载慢的情况,观察iserver性能并未发挥到极致,所以通过搭建子域的方式成功实现了浏览速度的提升。
子域能对加载速度进行提升是因为浏览器对同一个域名服务的并发请求数量有限制,通过 nginx 服务部署多个子域名,加大向 iserver 发送数据请求的并发量,从而达到提升加载速度的目的。
二、nginx配置步骤
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 |
server {
listen 8881;
listen 8882;
listen 8883;
listen 8884;
listen 8885;
server_name 127.0.0.1,172.16.15.124;
location / {
root html;
index index.html index.htm;
}
location /iserver {
proxy_pass http: //172.16.15.124:8090;
proxy_redirect off;
proxy_buffering off;
proxy_set_header host $host:$server_port;
proxy_set_header x-real-ip $remote_addr;
proxy_set_header x-forwarded- for $proxy_add_x_forwarded_for;
} |
三、前端对接
1.leaflet使用subdomains参数,url中加入{s}占位符
代码如下:
?
1
2
3
4
5
6
7
8 |
var map= "" ;
map = l.map( 'map' , {
crs: l.crs.epsg4326,
center: [0, 0],
maxzoom: 18,
zoom: 1
});
l.supermap.tiledmaplayer( "http://127.0.0.1:{s}/iserver/services/map-world/rest/maps/world" ,{subdomains:[8881,8882,8883,8884]}).addto(map); |
2.openlayer通过设置url参数{?-?},并通过xyz方式对接
代码如下:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 |
var map, url = "http://127.0.0.1:888{1-4}/iserver/services/map-world/rest/maps/world/zxytileimage.png?z={z}&x={x}&y={y}" ;
map = new ol.map({
target: 'map' ,
controls: ol.control.defaults({attributionoptions: {collapsed: false }})
.extend([ new ol.supermap.control.logo()]),
view: new ol.view({
center: [0, 0],
zoom: 2,
projection: 'epsg:3857' ,
multiworld: true
})
});
var layer = new ol.layer.tile({
source: new ol.source.xyz({
url: url,
wrapx: true
}),
projection: 'epsg:3857'
});
map.addlayer(layer);
map.addcontrol( new ol.supermap.control.scaleline()); |
3.classic直接传递url数组
代码如下:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 |
var map, layer,
host = window.islocal ? window.server : "https://iserver.supermap.io" ,
url = host + "/iserver/services/map-world/rest/maps/world" ;
//初始化地图
map = new supermap.map( "map" , {
controls: [
new supermap.control.navigation(),
new supermap.control.zoom()]
});
map.addcontrol( new supermap.control.mouseposition());
//初始化图层
layer = new supermap.layer.tileddynamicrestlayer( "world" , [ "http://127.0.0.1:8881/iserver/services/map-world/rest/maps/world" , "http://127.0.0.1:8882/iserver/services/map-world/rest/maps/world" , "http://127.0.0.1:8883/iserver/services/map-world/rest/maps/world" ], null, {maxresolution: "auto" });
//监听图层信息加载完成事件
layer.events.on({ "layerinitialized" : addlayer});
function addlayer() {
map.addlayer(layer);
//显示地图范围
map.setcenter( new supermap.lonlat(0, 0), 0); |
4.mapboxgl直接传递tiles参数
代码如下:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 |
var host = window.islocal ? window.server : 'https://iserver.supermap.io' ;
var map = new mapboxgl.map({
container: 'map' , // container id
style: {
version: 8,
sources: {
'raster-tiles' : {
type: 'raster' ,
tilesize: 256,
tiles: [ "http://127.0.0.1:8881/iserver/services/map-world/rest/maps/world" , "http://127.0.0.1:8882/iserver/services/map-world/rest/maps/world" , "http://127.0.0.1:8883/iserver/services/map-world/rest/maps/world" ],
rastersource: 'iserver'
}
},
layers: [
{
id: 'simple-tiles' ,
type: 'raster' ,
source: 'raster-tiles' ,
minzoom: 0,
maxzoom: 22
}
]
},
crs: 'epsg:4326' , // 或者 mapboxgl.crs.epsg4326 或者 new mapboxgl.crs('epsg:4326',[-180,-90,180,90]);
center: [0, 0],
zoom: 2
}); |
到此这篇关于利用 nginx 服务搭建子域环境提升二维地图加载性能的文章就介绍到这了,更多相关nginx 服务内容请搜索快网idc以前的文章或继续浏览下面的相关文章希望大家以后多多支持快网idc!
原文链接:https://blog.csdn.net/supermapsupport/article/details/120436462
相关文章
猜你喜欢
- 64M VPS建站:如何选择最适合的网站建设平台? 2025-06-10
- ASP.NET本地开发时常见的配置错误及解决方法? 2025-06-10
- ASP.NET自助建站系统的数据库备份与恢复操作指南 2025-06-10
- 个人网站服务器域名解析设置指南:从购买到绑定全流程 2025-06-10
- 个人网站搭建:如何挑选具有弹性扩展能力的服务器? 2025-06-10
TA的动态
- 2025-07-10 怎样使用阿里云的安全工具进行服务器漏洞扫描和修复?
- 2025-07-10 怎样使用命令行工具优化Linux云服务器的Ping性能?
- 2025-07-10 怎样使用Xshell连接华为云服务器,实现高效远程管理?
- 2025-07-10 怎样利用云服务器D盘搭建稳定、高效的网站托管环境?
- 2025-07-10 怎样使用阿里云的安全组功能来增强服务器防火墙的安全性?
快网idc优惠网
QQ交流群
您的支持,是我们最大的动力!
热门文章
-
2025-05-27 48
-
2025-05-29 65
-
2025-05-29 67
-
2025-05-29 51
-
2025-05-29 18
热门评论