子域环境搭建及使用


使用说明

由于浏览器对同一个域名服务的并发请求数量有限制,加载速度相对较慢。可以通过部署多个子域名,加大向iServer发送数据请求的并发量,从而达到提升加载速度的目的。

本文以Nginx为例搭建环境进行介绍:

Nginx是一款轻量级的Web服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。

想要提升加载性能,可以利用Nginx客户端,映射不同的端口地址对iServer进行访问,搭建子域环境,加大并发量。可以通过Nginx官网获取安装包。

本文档从以下几个方面分别进行说明:

    1. Nginx客户端部署方法
    2. 部分示例代码展示
    3. 加载效果

操作流程

1、Nginx客户端部署方法

解压下载好的安装包后,可以通过双击 nginx.exe,也可以通过命令的方式,在 Nginx 的主目录地址栏输入 cmd,并回车。打开命令行窗口,路径是在当前文件夹,然后输入命令:nginx 或者 start nginx 开启服务。

然后在地址栏输入:http://localhost:80,查看服务是否启动成功。Nginx 默认监听当前服务器的80端口,因此可先看下 80 端口有没有被占用。方法是打开 cmd 窗口,用命令(...>netstat -ano)来查看当前端口使用情况,最后一列为 PID。

使用命令(...>taskkill /f /t /pid PID编号)结束对应的进程。如果占用 80 端口的是一个关键进程关不掉,那么就将 Nginx 配置文件中的 80 端口改掉。Nginx的配置文件是conf目录下的nginx.conf,按照下图所示,修改完成后重启Nginx。

http://localhost:8081/iserver、http://localhost:8082/iserver、http://localhost:8083/iserver都会指向http://localhost:8090/iserver

2、部分示例代码展示

Nginx客户端部署好了,可以参考以下代码加载相应效果。

(1)打开场景,代码如下:

        var promise = viewer.scene.open('http://{s}/iserver/services/3D-CBD/rest/realspace', undefined, {
            subdomains: ['localhost:8081', 'localhost:8082', 'localhost:8083']//设置子域
        });

(2)添加模型,代码如下:

        var config = {
            subdomainConfig: {
                urlScheme: " http://{s}/iserver/services/3D-CBD/rest/realspace",
                subdomains: ['localhost:8081', 'localhost:8082', 'localhost:8083']//设置子域
            },
            name: "building"
        };
        var promise = viewer.scene.addS3MTilesLayerByScp('http://localhost:8090/iserver/services/3D-CBD/rest/realspace/datas/building/config', config);
        SuperMap3D.when(promise, function (layer) {
            viewer.flyTo(promise);
        })

(3)加载地形,代码如下:

        var viewer = new SuperMap3D.Viewer('Container', {
            terrainProvider: new SuperMap3D.SuperMapTerrainProvider({
                url: ' http://{s}/iserver/services/3D-terrain/rest/realspace/datas/dem',
                subdomains: ['localhost:8081', 'localhost:8082', 'localhost:8083']//设置子域
            })
        });

(4)加载影像,代码如下:

        var imageLayer = viewer.imageryLayers.addImageryProvider(new SuperMap3D.SuperMapImageryProvider({
            url: ' http://{s}/iserver/services/3D-image/rest/realspace/datas/image',
            subdomains: ['localhost:8081', 'localhost:8082', 'localhost:8083']//设置子域
        }));
        viewer.flyTo(imageLayer);

(5)加载mvt,代码如下:

        mvtMap = scene.addVectorTilesMap({
        url: 'http://{s}/services/map-mvt-JingJinDiQuDiTu/restjsr/v1/vectortile/maps/JingJin',
        subdomains: ['localhost:8081', 'localhost:8082', 'localhost:8083']//设置子域
        canvasWidth: 512,
        name: 'testMVT',
        viewer: viewer
        });

3、加载效果

从网络请求查看有不同端口的请求,比如'localhost:8081','localhost:8082','localhost:8083',则环境搭建成功。

版权所有 © 2000-2025 北京超图软件股份有限公司 京ICP备11032883号-8 京公网安备11010502008721 甲测资字11002074