terriajs
Version:
Geospatial data visualization platform.
90 lines (81 loc) • 2.53 kB
text/typescript
import objectTrait from "../Decorators/objectTrait";
import primitiveTrait from "../Decorators/primitiveTrait";
import ModelTraits from "../ModelTraits";
import { traitClass } from "../Trait";
import mixTraits from "../mixTraits";
import CatalogMemberTraits from "./CatalogMemberTraits";
import ImageryProviderTraits from "./ImageryProviderTraits";
import LayerOrderingTraits from "./LayerOrderingTraits";
import LegendOwnerTraits from "./LegendOwnerTraits";
import MappableTraits from "./MappableTraits";
import UrlTraits from "./UrlTraits";
export class CogRenderOptionsTraits extends ModelTraits {
({
type: "number",
name: "No Data Value",
description: "No data value, default read from tiff meta"
})
nodata?: number;
({
type: "boolean",
name: "Convert to RGB",
description: "Try to render multi band cog to RGB, priority 1"
})
convertToRGB?: boolean;
({
type: "string",
name: "Resample Method",
description: "Geotiff resample method. Defaults to `bilinear`."
})
resampleMethod?: "nearest" | "bilinear" = "nearest";
}
({
description:
"Creates a Cloud Optimised Geotiff item in the catalog from a url pointing to a TIFF that is a valid COG.",
example: {
name: "COG Test Uluru",
description:
"This is a COG from Sentinel-2 L2A, in EPSG:32752. Does it display in correct location? Does it display correctly?",
type: "cog",
url: "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/52/J/FS/2023/5/S2A_52JFS_20230501_0_L2A/TCI.tif"
}
})
export default class CogCatalogItemTraits extends mixTraits(
ImageryProviderTraits,
LayerOrderingTraits,
UrlTraits,
MappableTraits,
CatalogMemberTraits,
LegendOwnerTraits
) {
({
type: CogRenderOptionsTraits,
name: "Render Options",
description: "Render options for COGs"
})
renderOptions?: CogRenderOptionsTraits;
({
type: "string",
name: "Credit",
description: "Credit for the imagery provider."
})
credit?: string;
({
type: "number",
name: "Tile Size",
description: "The size of the tile."
})
tileSize?: number;
({
type: "boolean",
name: "Has Alpha Channel",
description: "Whether the imagery has an alpha channel."
})
hasAlphaChannel?: boolean;
({
type: "number",
name: "Cache",
description: "Cache survival time in milliseconds."
})
cache?: number;
}