superMAP超图控制TiledDynamicRESTLayer地图图层显示与隐蔽


超图是中国科学院旗下著名的地理信息系统(GIS)软件产品,不得不说中国人做的东西啊!!!都他么是屎。开源的产品包个壳就说是自主知识产权,一点不带谦虚的。那你也搞好点啊,不行,用的时候总是有各种各样的问题。

来一发:

关于TiledDynamicRESTLayer超图是这样讲的。

SuperMap iServer Java 6R 分块动态 REST 图层, 用于对接 SuperMap iServer 的 REST 地图服务的分块动态栅格图层,有关 REST (REpresentational State Transfer,表述性状态转移)服务请参见 “SuperMap iServer Java 6R 帮助文档 “。

      详细请参见:API参考 http://www.supermap.com.cn:8090/iserver/iClient/forJavaScript/apidoc/files/SuperMap/Layer/TiledDynamicRESTLayer-js.html

       讲到说,当我们初始化图层之后还想改变图层显示时可以直接如下进行设置: layer.params.layersID = “[0:0,1,7,11]”; //图层索引为0、1、7和11的显示,其他不显示 layer.redraw();但在使用中发现redraw不起作用。也就是目前已经加载的图像还是这样,修改后,没有加载的图像块加载的时候才会起作用。



厂家也无法解决。

so,只好曲线救国了。


1.从地图中删除该图层 map.remove(layerMain)

2.销毁此对象 layerMain.destroy()

3.new一个layerMain 

layerMain = new SuperMap.Layer.TiledDynamicRESTLayer("地图图层", "http://10.42.1.152:8090/iserver/services/map-SLPC/rest/maps/SLPC", {transparent: true, cacheEnabled: true,
        layersID:""}, {scales:[1/4622333.678977596,
                    1/2311166.839488798,
                    1/1155583.419744399,
                    1/577791.7098721995,
                    1/288895.8549360997,
                    1/144447.92746804986,
                    1/72223.96373402493,
                    1/36111.981867012466,
                    1/18055.990933506233,
                    1/9027.995466753116]}
    );

4.修改layersID  layerMain.params.layersID = “[0:0,1,7,11]”;   在这里只添加你想要显示的图元的ID号

5.把此图层添加进地图中 map.addLayer(layerMain) 


附较完整的原代码

<script type='text/javascript'>
         
var map;  
var layerBase;//行政区划
var layerMain;
function onLoad() {
    map = new SuperMap.Map("mapDiv", {
        controls: [
            new SuperMap.Control.LayerSwitcher(),
            new SuperMap.Control.ScaleLine(),
            new SuperMap.Control.OverviewMap(),
            new SuperMap.Control.PanZoomBar(),
            new SuperMap.Control.MousePosition(),
            new SuperMap.Control.Navigation({
                dragPanOptions: {
                                    enableKinetic: true
                                }
        })],
        //allOverlays: true
    });
    addLayerBase();
	addLayerMain();
}
//底图图层
function addLayerBase(){

}

function addLayerMain(){
    layerMain = new SuperMap.Layer.TiledDynamicRESTLayer("地图图层", "http://10.42.1.152:8090/iserver/services/map-SLPC/rest/maps/SLPC", {transparent: true, cacheEnabled: true,
        layersID:"[0:190]"}, {scales:[1/4622333.678977596,
                    1/2311166.839488798,
                    1/1155583.419744399,
                    1/577791.7098721995,
                    1/288895.8549360997,
                    1/144447.92746804986,
                    1/72223.96373402493,
                    1/36111.981867012466,
                    1/18055.990933506233,
                    1/9027.995466753116]}
    );
    layerMain.events.on({"layerInitialized": addFinish});
}
function addFinish(){
    map.addLayers([layerMain]);
    map.setCenter(new SuperMap.LonLat(114.3548172712326,30.52938993630498),7);
}
</script>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路边闲人2

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值