首页 / 浏览问题 / 三维GIS / 问题详情
基于WebGL如何在场景中添加监测图标
18EXP 2017年03月29日

在Isever端实现在空间中加入监测的Icon的方法是scene.get_trackingLayer3D();添加图层,然后把监测Icon的属性信息add到layer中。

我想问,基于WebGL平台如何实现,我试了按照Isever端的方法,没有成功。请问实现的具体方法和思路。

1个回答

不好意思啊,早上说回复您的,居然忘记了。今天我同事都出差了,我一个人又要接电话,又要回复这儿的问题,有点忙不过来,抱歉拉。

是这样的,您说的scene.get_trackingLayer3D()这是插件客户的,现在WebGL客户端还没有这个东西吧,插件客户端的思路不一定能直接套过来啊。

您之前说了看了个示例里面有您需求的功能吗?如果有可以参考一下,您也可以发出那个示例我们一起讨论下。
3,389EXP 2017年03月29日

参考的是示例添加图标使用代码所示方法:

var viewer = new Cesium.Viewer( 'cesiumContainer' );

var citizensBankPark = viewer.entities.add( {

    name : 'Citizens Bank Park',

    position : Cesium.Cartesian3.fromDegrees( -75.166493, 39.9060534 ),

   billboard : { //图标

        image : 'http://localhost:81/images/2015/02-02/Philadelphia_Phillies.png',

        width : 64,

        height : 64

    },

} );

viewer.zoomTo( viewer.entities );

使用这种方法可以看到加载后的图片。但是出现了bug,绘制过程出现错误,错误内容如下:

您好,参考一下这个。

http://ask.supermap.com/2725

image : 'http://localhost:81/images/2015/02-02/Philadelphia_Phillies.png',

把您这个路径放我们iserver下面,用相对路径试试。

范例是放这个目录的:

..\SuperMap\supermap_iserver_8.1.0_win64_zip\iClient\for3D\webgl\examples\Tex

在线的:

http://support.supermap.com.cn:8090/iserver/iClient/for3D/webgl/examples/S3M3DTexture.html

您把替换成您的icon图标试试看呢。

您说的这个是贴纹理,不过,upermap for webGL里有一个例子是pickPosition和我的情况相似。

<!--StartFragment -->

pickPosition这个例程,如果不改动能正常运行,里面的方法用法和我的类似。我把这个例子的加载场景替换成我的后,然后拾取坐标,不能正常运行,出现同样的错误,无法绘制(Reading has stop)。
 请问这是什么原因?



 

您把WEBGL库升级到最新版本了没?
运行示例行,但是您修改的不行,如果引用的库一下,那应该不是库的问题,您得仔细对比一下您写的和示范哪儿写的不一样。
我只是把加载图层路径换成我自己图层路径,其他没有修改。仅仅是替换场景。
您说一个Teamviewer我远程看看吧
759 527 677  key:4604
远程看了,是客户使用的WebGL包有这个问题,换一个新的解决问题。
...