首页 / 浏览问题 / 三维GIS / 问题详情
请问怎样获取一个图层中所有的元素(即feature)呢
8EXP 2019年12月03日
for(var i=0;i<scene.layers.layerQueue.length;i++){
    var layer_name = scene.layers.layerQueue[i]._name;
    if(layer_name == '车B1@停车场' || layer_name == '车B2@停车场' || layer_name == '车B2@停车场'){
        var features = scene.layers.layerQueue[i].features;
        for(var j=0;j<scene.layers.layerQueue[i].features.length;j++){
            if(searchCarid == scene.layers.layerQueue[i]._features[j].CARID){
                //var carid = Cesium.defaultValue(feature[j].CARID, '');
                CAR_ID.innerHTML = "车辆编号:" + searchCarid;

            }
        }

    }

}

1个回答

var features = scene.layers.layerQueue[i].features;这个不就是您查询到的features呢?
1,255EXP 2019年12月03日
查询不出来,显示features未定义
您是通过什么查询?我看您scene.layers.layerQueue这里返回的是s3m图层列表,肯定没有features的呀,这个是获取到s3m图层缓存列表的。您想要获取到features,需要发布数据服务,通过sql查询,或者范围查询去查询到呢,
哦哦哦,谢谢了,知道问题出在哪了,我以为这样可以获取到
您可以把您的模型,在idektop里面,把模型转成三维面或者二维面,然后发布数据服务,然后通过示范的sql或者几何查询就可以拿到features了。模型发布的数据服务,查询速度很慢,所以需要转成二维或者三维面。
好的,谢谢您,我再尝试一下吧
...