三维场景加载图层问题

0 投票

现在想要用三维场景加载WMS图层。

scene.get_layer3Ds().add(“http://localhost:8090/iserver/services/map-wms2/rest/maps/Layers”,"Layers","Layers",11);

我想问:

1.这个方法用的对不对。

2.这个方法的url是不是类似于这样的,还是什么样子的。

6月 7, 2017 分类:  522次浏览 | 用户: 990914093 初出茅庐 (32 分)

1个回答

0 投票
 
已采纳

您好,wms图层是OGC标准的图层,插件客户端有一个专门的方法添加wm图层:

Layer3Ds.addOGC方法。

function addOGC( 
   
strServerRootUrl : String,
   
strLayerName : String,
   
l3dType : Layer3DType,
   
addToHead : Boolean
) : Layer3D;
                  

参数

strServerRootUrl

图层数据所在的服务器地址。

strLayerName

要添加的图层名称。

l3dType

图层类型。该值必须与从服务器获取的图层类型一致,否则抛异常。

addToHead

是否将图层添加到集合的顶部,默认值为 true,即添加最上层。

返回值

三维图层。

6月 8, 2017 用户: 邹涛 名扬四海 (3,389 分)
采纳于 6月 8, 2017 用户:990914093
添加WMS图层之前是否要加载一个iServer中已有的场景,我是直接

scene = sceneControl.get_scene();

scene.get_layer3Ds().addOGC(url_WMS,"Layers",11,true);

但是浏览器只显示一个地球,而且F12报错:Uncaught 3: 操作失败-->

SuperMap.Web.Realspace.js(这是给出出错的js)代码:

SuperMap.Web.Realspace.Layer3DWMS = function(b, e, c) {
    SuperMap.Web.Realspace.Layer3DWMS.initializeBase(this);
    this._innerLayer = null;
    this._style3D = null;
    this._transparentColor = null;
    if (c != null) {
        this._innerLayer = c
    } else {
        var d = new SuperMap.Web.Realspace.Layer3DURLParam();
        d._set_layerURL(b);
        d._set_layerType(SuperMap.Web.Realspace.Layer3DType.WMS);
        d._set_dataName(e);
        d._set_layerName(e);
        this._innerLayer = SuperMap.Web.Realspace.Utility._SceneControl
                .get_scene().get_layer3Ds()._createLayer3D(d)
    }
    if (this._innerLayer == null) {
        var a = new Error(SuperMap.Lang.translate("操作失败"));
        a.name = SuperMap.Web.Realspace.ExceptionName.OperationFailed;
        throw a
    }

其中给出c是undefined,d = S…p.Web.R…e.Layer3DURLParam {},

this._innerLayer == null

您好,报这个错误说明是服务地址有错误哈。

您参考一下在线的范例:

http://support.supermap.com.cn:8090/iserver/iClient/for3D/plugin/samplecode/samplecode/samples/SceneView3D/AddWMS.html

服务地址可以添加这个:

http://support.supermap.com.cn:8090/iserver/services/map-china400/wms111/China

添加完成WMS图层之后能设置WMS图层的高度吗?如果可以的话怎么设置?

我用addOGC()返回的对象调用get_style3D()方法在调用set_bottomAltitude()方法,结果浏览器提示找不到get_style3D和set_bottomAltitude属性?

设置不了哈,这种相当于是影像,是贴在地表的
请问,是不是通过这个方法调用的服务都不能设置可选状态和空间属性查询等操作的?
...