首頁 / 浏覽問題 / 雲GIS / 問題詳情
iClientClassic設置圖層顯示時(shí)請求url中的(de)參數問題
269EXP 2023年03月20日
通過iCLientClassic的(de)SetLayerStatusService對map中的(de)圖層設置顯隐後顯示。但實際操作時(shí)發現設置圖層的(de)visible明明都相同,但圖層有時(shí)候會無法顯示

打開浏覽器的(de)network查看請求時(shí),無法顯示的(de)時(shí)候的(de)url如下:

https://localhost:8090/iserver/services/map-testmap/rest/maps/RoadMap/tileImage.png?transparent=true&cacheEnabled=false&layersID=wwwn_8917_2b3883dbba544bdcb83b1cb65953b590&width=256&height=256&x=16&y=74&scale=-1&redirect=false&t=1679286331900&overlapDisplayed=false

然後正常顯示時(shí)的(de)url如下:

https://localhost:8090/iserver/services/map-testmap/rest/maps/RoadMap/tileImage.png?transparent=true&cacheEnabled=false&layersID=wwwn_8917_8475b06c827f41809976088bc4f8561c&width=256&height=256&x=16&y=75&scale=0.000055383279935350536&redirect=false&t=1679286715076&overlapDisplayed=false

唯一(yī / yì /yí)的(de)區别是(shì)scale分别爲(wéi / wèi)-1和(hé / huò)0.000055383279935350536。但設置參數時(shí)我這(zhè)邊并沒有設置過scale。

另外,成功顯示出(chū)一(yī / yì /yí)次後刷新頁面後也(yě)可以(yǐ)正常顯示。

請問造成這(zhè)樣的(de)效果是(shì)什麽原因導緻的(de)。

1個(gè)回答

您好:

各個(gè)圖層顯示的(de)可見比例尺範圍不(bù)同,會導緻在(zài)當前比例尺下,部分圖層顯示,部分圖層不(bù)顯示

您可以(yǐ)通過SuperMap.Layer的(de)maxScale/minScale設置圖層實例化的(de)時(shí)的(de)最大(dà)/小比例尺

詳細信息請參考Classic在(zài)線文檔:https://iclient.supermap.io/web/libs/iclient8c/apidoc/files/SuperMap/Map-js.html

希望可以(yǐ)幫助到(dào)您!

235EXP 2023年03月20日
您好,我現在(zài)想要(yào / yāo)顯示的(de)圖層在(zài)iDesktop中設置過顯示的(de)最小比例尺

在(zài)地(dì / de)圖上(shàng)顯示時(shí)移動地(dì / de)圖可以(yǐ)獲取上(shàng)面的(de)url,但如果超過了(le/liǎo)最小比例尺,圖層會自動隐藏,此時(shí)移動地(dì / de)圖也(yě)不(bù)會出(chū)現上(shàng)面的(de)url。

所以(yǐ)我覺得和(hé / huò)比例尺沒有直接的(de)關系,因爲(wéi / wèi)現象不(bù)一(yī / yì /yí)樣。

請問什麽情況會導緻上(shàng)面scale=-1的(de)場合

您好:

您這(zhè)邊是(shì)通過什麽方式獲取地(dì / de)圖服務呢?

通過REST api進行訪問需要(yào / yāo)設置scale參數

您這(zhè)邊方便把代碼私信發我嗎?這(zhè)邊幫您看看

希望可以(yǐ)幫助到(dào)您!

您好,我是(shì)使用以(yǐ)下代碼新建動态圖層然後追加到(dào)地(dì / de)圖上(shàng)去的(de):

roadLayer = new SuperMap.Layer.TiledDynamicRESTLayer(
        "RoadMap",
        roadUrl,
        {
            transparent: true,
            cacheEnabled: false
        },
        {
            maxResolution: "auto",
            bufferImgCount: 0
        }
    );

然後獲取這(zhè)個(gè)地(dì / de)圖中每一(yī / yì /yí)個(gè)圖層的(de)名字,通過LayerStatus設置每一(yī / yì /yí)個(gè)圖層的(de)顯隐

layerStatusTrue = new SuperMap.REST.LayerStatus({
                                layerName: roadLayer.LayersName2[i],
                                isVisible: true
                            });

然後運行後獲得篩選後的(de)圖層

var setLayerStatusParameters = new SuperMap.REST.SetLayerStatusParameters({
                layerStatusList: layersStatus
            });
            var setLayerStatusService = new SuperMap.REST.SetLayerStatusService(roadUrl, {
                eventListeners: { "processCompleted": setLayerCompleted }
            });
            setLayerStatusService.processAsync(setLayerStatusParameters);

然後更新這(zhè)個(gè)動态圖層

function setLayerCompleted(setLayerServiceEventArgs) {
    roadLayer.params.layersID = setLayerServiceEventArgs.result.newResourceID;
    roadLayer.redraw();
    if (roadLayer.visibility === false) {
        roadLayer.setVisibility(true);
    }
}

流程是(shì)這(zhè)樣的(de)

您好:

您這(zhè)邊設置一(yī / yì /yí)下scales參數

希望可以(yǐ)幫助到(dào)您!

您好,請問這(zhè)個(gè)scale參數一(yī / yì /yí)般應該如何設置,設置完後如果這(zhè)個(gè)動态圖層裏每個(gè)圖層可以(yǐ)顯示的(de)最小比例尺不(bù)同的(de)話,是(shì)否會造成什麽影響?
您好,這(zhè)邊私信您!
好,麻煩您了(le/liǎo)
...