您的位置:首页 > 其它

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

2015-03-10 19:50 183 查看
超图是中国科学院旗下著名的地理信息系统(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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐