ImageryLayerFeatureInfo提供了从ImageryLayer中获取地图瓦片信息的方法。
ImageryLayerFeatureInfo(layer: ImageryLayer)
参数 | 类型 | 描述 |
---|---|---|
layer | ImageryLayer | 包含要素信息的ImageryLayer |
pickFeatures(ray: Ray, scene: Scene): Promise<Array<ImageryLayerFeature>>
与给定场景中的射线相交的ImageryLayerFeature。
参数 | 类型 | 描述 |
---|---|---|
ray | Ray | 要查询的射线 |
scene | Scene | 用于拾取功能的场景实例 |
返回值:一个Promise,其中包含所有与射线相交的ImageryLayerFeature数组。
以下示例介绍了如何使用ImageryLayerFeatureInfo来拾取ImageryLayerFeature。
var pickedFeature;
var handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
handler.setInputAction(function (movement) {
var ray = viewer.camera.getPickRay(movement.endPosition);
var featuresPromise = imageryLayerFeatureInfo.pickFeatures(ray, viewer.scene);
Cesium.when(featuresPromise, function (pickedFeatures) {
if (Cesium.defined(pickedFeatures) && pickedFeatures.length > 0) {
pickedFeature = pickedFeatures[0];
console.log('You picked feature:', pickedFeature);
}
});
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
ImageryLayerFeature包含有关特定图块上位置的信息。
名称 | 类型 | 描述 |
---|---|---|
imagery | Object | ImageryProvider的纹理属性 |
tile | Object | ImageryLayer上的地图图块属性 |
pickColor | Color | Color.getColor的选取颜色(4个字节,rgba格式) |
color | Color | 着色器中定义的选取颜色(4个字节,rgba格式) |
featureId | 常量 | ImageryLayerFeature中的常量,表示同一属性的ID |
使用下面的代码段来打印单个ImageryLayerFeature的纹理坐标信息。
if (Cesium.defined(pickedFeatures) && pickedFeatures.length > 0) {
console.log('You picked feature:', pickedFeatures[0]);
// Log texture coordinates of the picked feature
var coord = pickedFeature.imageryCoordinates;
console.log('Texture coordinates:', coord);
}
ImageryLayerFeature包括以下ID常量。
常量 | 描述 |
---|---|
undefined |
未定义 |
createFromTilingScheme |
ImageryLayerFeature从TilingScheme创建 |
pickFeatures |
选择一个或多个对象 |