WebGL三维气泡查询

0 投票

使用产品:iserver 8c 810 操作系统:win10 x64

问题详细描述:使用官方webgl范例:SuperMap iClient3D 9D for WebGL气泡

var viewer;
			var scene;

			function onload(Cesium) {
				//初始化viewer部件
				viewer = new Cesium.Viewer('cesiumContainer');
				scene = viewer.scene;
				//设置开启地下场景
				//viewer.scene.undergroundMode = true;
				//viewer.scene.screenSpaceCameraController.minimumZoomDistance = -1000; //设置相机最小缩放距离,距离地表-1000米
				var bubble = new Bubble(scene, 'bubble');

				var promise = scene.open("http://localhost:8090/iserver/services/3D-SMHB3D/rest/realspace");
				promise.then(function(layers) {
					viewer.zoomTo(layers[0]);
					layers[0].cullEnabled=false;

				});

				var scene = viewer.scene;
				var canvas = scene.canvas;
				var widget = viewer.cesiumWidget;
				$('#loadingbar').remove();

				//注册鼠标点击事件
				var handler = new Cesium.ScreenSpaceEventHandler(scene.canvas);
				handler.setInputAction(function(e) {

					var layers = scene.layers;
					var layerCount = layers._layers.length;
					for(var i = 0; i < layerCount; i++) {
						var layer = layers.findByIndex(i);
						var id = scene.getSelectID(e.position, layer);

						if(id > 0) {
							/*console.log(layer);
							console.log(id);*/
							//修改bubble内容
							document.getElementById('title').innerText = '图层名:' + layer._name;
							document.getElementById('des').innerText = 'SMID:' + id;
							//传入坐标
							var position = scene.pickPosition(e.position);
							//将笛卡尔坐标转化为经纬度坐标
							var cartographic = Cesium.Cartographic.fromCartesian(position);
							var longitude = Cesium.Math.toDegrees(cartographic.longitude);
							var latitude = Cesium.Math.toDegrees(cartographic.latitude);
							var height = cartographic.height;
							var bubbleposition = new Cesium.Cartesian3.fromDegrees(longitude, latitude, height);
							bubble.showAt(bubbleposition);

							return;
						} else {
							bubble.visibility(false);
						}
					}

				}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
			}

imageimage


问题重现步骤: 将open地址改成发布的服务地址,点击报错,请问是我使用的方法有错还是什么问题

5月 24, 2018 分类:  877次浏览 | 用户: 小灰 初出茅庐 (84 分)

1个回答

0 投票

您好,建议使用最新webgl包http://support.supermap.com.cn:8090/webgl/download.html

参考最新范例使用http://support.supermap.com.cn:8090/webgl/examples/editor.html#S3MTiles

看你的报错信息,是没有getSelectID方法,请你在浏览器查看scene是否有此方法。

5月 24, 2018 用户: 胡林 登峰造极 (5,985 分)
好的 再问下 有关这些webgl三维功能,是否要求iserver的版本也要9.01
没有该要求,除非某特定功能需要iserver新功能才能支持,
有哪些功能有该要求
...