场景加载地图图层之后怎么获取图层属性

0 投票
在三维平面场景中叠加了一个地图图层。是一个矢量图层。在只知道地图图层地址的情况下,怎么获取这个图层的所有属性信息。
6月 22, 2017 分类:  1198次浏览 | 用户: 幸福的让你嫉妒 才疏学浅 (15 分)

1个回答

0 投票

您好,从服务地址可以得到的图层属性信息示例:

http://support.supermap.com.cn:8090/iserver/services/3D-osgb/rest/realspace/scenes/osgb/layers/jinjiang_Compressed-test.rjson

能获取到的信息有:

{
    "alwaysRender": true,
    "bounds": null,
    "cachePassword": null,
    "caption": "jinjiang_Compressed-test",
    "dataConfigPath": "E:/SuperMap/supermap_iserver_811_14826_40_win64_deploy/samples/data/Realspace/osgb/jinjiang_Compressed-test.scp",
    "dataName": "jinjiang_Compressed-test",
    "description": "",
    "editable": false,
    "isWebDatasource": false,
    "layer3DType": "OSGBLayer",
    "level": -1,
    "maxVisibleAltitude": 0,
    "minVisibleAltitude": 0,
    "name": "jinjiang_Compressed-test",
    "oldCache": false,
    "queryable": false,
    "subLayers": {},
    "type": null,
    "useTwoDimenCache": false,
    "visible": true,
    "visibleDistance": 0
}

其他更详细的信息,需要通过客户端提供的接口获取,比如插件客户端获取某个图层的风格信息,Layer3D.get_style3D()。更多方法或属性请查询帮助手册哈。

6月 22, 2017 用户: 邹涛 名扬四海 (3,389 分)

三维插件啊。  就是矢量图层点击某一个要素。获取不到属性。点击的图层是发了服务动态加载到场景里面的。平面场景。

<!--StartFragment -->

SceneCtrl3D.addEvent("objectSelected",getFieldandValue);
var selectAction = new SuperMap.Web.UI.Action3Ds.Select(SceneCtrl3D);
SceneCtrl3D.set_sceneAction(selectAction);

清楚了,矢量缓存图层可以用这个方法哈。

OSGB缓存就不行了,OSGB缓存用方法:

var resultVar = instanceOfLayer3DOSGB.getAllFieldValueOfLastSelectedObject();

获取OSGB图层所选中对象的所有属性信息。

我用的就是矢量图层啊。加载到场景里面的都是矢量图层、不是osgb的。
也是矢量缓存啊?把您自己添加图层的代码发出来看看吧,您删除客户端缓存试试看看好使不:

停止iServer服务,打开运行输入“%appdata%”把应用目录“AppData\LocalLow\SuperMap”和“AppData\Local\SuperMap”目录删了,iServer目录下\webapps\iserver\output”删了,重启iServer服务。
行,我试一试,谢谢!
...