webgl对叠加的二维地图能否进行要素属性查询

0 投票
186 浏览

基于iclient3D for webGL,叠加了iServer发布的二维地图,通过鼠标点击事件能否获取到选中要素信息?有什么方法吗?

通过以下代码,发现featurePromise一直是undefined。

var handler = new Cesium.ScreenSpaceEventHandler(scene.canvas); 
		    handler.setInputAction(function(e) {
		    	
		    	var pickRay = viewer.camera.getPickRay(e.position);
				var featuresPromise = imageryLayers.pickImageryLayerFeatures(pickRay, viewer.scene);
				if (!Cesium.defined(featuresPromise)) {
				    console.log('No features picked.');
				} else {
				    Cesium.when(featuresPromise, function(features) {
				        console.log('Number of features: ' + features.length);
				        if (features.length > 0) {
				            console.log('First feature name: ' + features[0].name);
				        }
				    });
				}
		    },Cesium.ScreenSpaceEventType.LEFT_CLICK);

最新提问 1月 5 分类:  186次浏览 | 用户: zhanglihong 初出茅庐 (33 分)

1个回答

0 投票
 
已采纳
您好,二维地图的对象是获取不到的。因为加载的二维地图已经相当于地图缓存(影像缓存)了。

您想进行矢量数据的属性查询的话,必须将数据加载到场景中,然后生成s3m缓存。之后,发布数据服务以及是三维服务。
最新回答 1月 8 用户: 张阳名 名扬四海 (4,912 分)
采纳于 1月 8 用户:zhanglihong
...