首頁 / 浏覽問題 / WebGIS / 問題詳情
iclient for classic 加載wms130錯亂問題
2EXP 2020年09月08日

如圖,同一(yī / yì /yí)幅wms130地(dì / de)圖,用leaflet加載是(shì)正常顯示,用classic加載就(jiù)錯亂了(le/liǎo),是(shì)參數設置不(bù)對嗎  

1個(gè)回答

您好,請問您那邊具體的(de)錯誤是(shì)什麽,我這(zhè)邊測試了(le/liǎo)一(yī / yì /yí)下是(shì)都能正常顯示預覽的(de)。
2,248EXP 2020年09月08日

3857

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title data-i18n="resources.title_wms"></title>
<style type="text/css">
        .editPane {
            position: absolute;
            right: 10px;
            top: 50px;
            text-align: center;
            background: #FFF;
            z-index: 1000;
            width: 300px;
        }
    </style>
</head>
<body style=" margin: 0;overflow: hidden;background: #fff;width: 100%;height:100%;position: absolute;top: 0;">
<div class='panel panel-primary editPane' id='editPane' style="z-index: 99999">
<div class='panel-heading'>
<h5 class='panel-title text-center' data-i18n="resources.text_wms"></h5>
</div>
<div class='panel-body' id='params'>
<div class='input-group'>
<span style="margin-top: 15px" class='input-group-addon' data-i18n="resources.text_projection"></span>
<select class='form-control selectbtn' id='projectionSelect' name="projectionSelect" onchange="switchProjection()">
<option value="3857">3857</option>
<option value="4326">4326</option>
</select>
</div>
<p>
<div class='input-group'>
<span style="margin-top: 15px" class='input-group-addon' data-i18n="resources.text_wmsVersion"></span>
<select class='form-control selectbtn' id='versionSelect' name="versionSelect" onchange="switchProjection()">
<option value="1.3.0">1.3.0</option>

</select>
</div>
</div>
<div id='mousePositionDiv' class='smCustomControlMousePosition'></div>
</div>
<div id="map" style="margin:0 auto;width: 100%;height: 100%"></div>
<script type="text/javascript" include="bootstrap" src="../js/include-web.js"></script>
<script type="text/javascript" exclude="iclient-classic" src="../../dist/classic/include-classic.js"></script>
<script type="text/javascript">
    var map, layer, wms1, wms2, wms3, wms4, newHtml, projectionSelect, versionSelect, lastLayer, mapDiv,
        host = window.isLocal ? window.server : "https://iserver.supermap.io";
    var url1 = "http://localhost:8090/iserver/services/map-china400/wms130/China";
    var url2 = "http://localhost:8090/iserver/services/map-china400/wms130/China_4326";
    map = new SuperMap.Map('map', {
        controls: [new SuperMap.Control.Zoom(),
            new SuperMap.Control.Navigation(),
            new SuperMap.Control.ScaleLine(),
            new SuperMap.Control.LayerSwitcher()
        ]
    });
    projectionSelect = document.getElementById("projectionSelect");
    versionSelect = document.getElementById("versionSelect");
    mapDiv = document.getElementById("map");
    switchProjection();
    setposition();
    addHandler(window, "resize", setposition);

    function switchProjection() {
        if (lastLayer) {
            map.removeLayer(lastLayer);
        }
        if (versionSelect.value == "1.3.0") {
            if (projectionSelect.value == "3857") {
                //設置layers圖層名稱必須是(shì) GetCapabilities 操作返回的(de)文檔中聲明的(de)Name元素的(de)值,地(dì / de)圖圖層之(zhī)間以(yǐ)半角英文逗号進行分隔。最左邊的(de)圖層在(zài)最底,下一(yī / yì /yí)個(gè)圖層放到(dào)前一(yī / yì /yí)個(gè)的(de)上(shàng)面,依次類推。
                //version,請求版本号。現支持”1.1.1”和(hé / huò)”1.3.0”。
                //設置地(dì / de)圖的(de)projection,最大(dà)顯示範圍bounds參數
                //初始化WCS圖層
                wms1 = new SuperMap.Layer.WMS("WMS1", url1, {
                    layers: "China",
                    version: '1.3.0'
                }, {
                    projection: "EPSG:3857",
                    maxExtent: new SuperMap.Bounds(-20037508.34, -20037508.34, 20037508.34, 20037508.34)
                });
                switchLayer(wms1);
            } else if (projectionSelect.value == "4326") {
                wms2 = new SuperMap.Layer.WMS("WMS2", url2, {
                    layers: "China_4326",
                    version: '1.3.0'
                }, {projection: "EPSG:4326", maxExtent: new SuperMap.Bounds(-180, -90, 180, 90)});
                switchLayer(wms2);
            }
        }
        document.getElementById("mousePositionDiv").innerHTML = newHtml;
    }

    function switchLayer(wms) {
        map.addLayers([wms]);
        var center = new SuperMap.LonLat(0, 0);
        map.setCenter(center, 1);
        lastLayer = wms;
        mapDiv.focus();
        newHtml = resources.text_currentInfo+"<br>" + resources.text_mapProjection + wms.projection + "<br>"+resources.text_currentVersion + wms.params.VERSION;

    }

    function addHandler(element, type, handler) {
        if (element.addEventListener) {
            element.addEventListener(type, handler, false);
        } else if (element.attachEvent) {
            element.attachEvent("on" + type, handler);
        } else {
            element["on" + type] = handler;
        }
    }
    function setposition() {
        var width = map.getSize().w;
        document.getElementById("mousePositionDiv").style.left = width / 2 - 100 + "px";
    }
</script>
</body>
</html>

您把這(zhè)個(gè)直接複制到(dào)官網範例中,看4326的(de)能不(bù)能正常顯示
不(bù)行啊,這(zhè)個(gè)裏面給的(de)iserver的(de)地(dì / de)址是(shì)localhost,我本地(dì / de)沒有啓動iserver,要(yào / yāo)改成服務器上(shàng)的(de)吧

我現在(zài)直接訪問官網裏面的(de),不(bù)改代碼,也(yě)是(shì)錯亂的(de)  4326錯亂   3857正常

2944254638這(zhè)個(gè)是(shì)我的(de)qq号,您加我私聊吧。
...