Skip to content

Commit

Permalink
feat: add alpha property to raster appearance on reearth/core (#555)
Browse files Browse the repository at this point in the history
* feat: add alpha property to raster appearance on reearth/core

* fix
  • Loading branch information
keiya01 committed Mar 17, 2023
1 parent f95d27a commit 541f301
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 8 deletions.
2 changes: 1 addition & 1 deletion src/core/engines/Cesium/Feature/Model/index.tsx
Expand Up @@ -64,7 +64,7 @@ export default function Model({ id, isVisible, property, geometry, layer, featur
silhouetteSize = 1,
} = property ?? {};

const actualUrl = useMemo(() => model || url || data?.url, [layer, model, url]);
const actualUrl = useMemo(() => model || url || data?.url, [model, url, data?.url]);
const orientation = useMemo(
() =>
bearing
Expand Down
25 changes: 18 additions & 7 deletions src/core/engines/Cesium/Feature/Raster/hooks.ts
Expand Up @@ -10,7 +10,13 @@ import { isEqual, pick } from "lodash-es";
import { useEffect, useMemo, useRef } from "react";
import { useCesium } from "resium";

import type { ComputedFeature, ComputedLayer, Feature, PolygonAppearance } from "../../..";
import type {
ComputedFeature,
ComputedLayer,
Feature,
PolygonAppearance,
RasterAppearance,
} from "../../..";
import { usePick } from "../hooks";
import { attachTag, extractSimpleLayer, extractSimpleLayerData, generateIDWithMD5 } from "../utils";

Expand All @@ -19,17 +25,22 @@ import { Props } from "./types";
const useImageryProvider = (
imageryProvider: ImageryProvider | undefined,
layerId: string | undefined,
property: RasterAppearance | undefined,
) => {
const { viewer } = useCesium();
const alpha = property?.alpha;
useEffect(() => {
if (!imageryProvider) return;
const imageryLayers: ImageryLayerCollection = viewer.imageryLayers;
const layer = imageryLayers.addImageryProvider(imageryProvider);
attachTag(layer, { layerId });
const imageryLayer = imageryLayers.addImageryProvider(imageryProvider);
if (alpha !== undefined && typeof alpha === "number") {
imageryLayer.alpha = alpha;
}
attachTag(imageryLayer, { layerId });
return () => {
imageryLayers.remove(layer);
imageryLayers.remove(imageryLayer);
};
}, [imageryProvider, viewer, layerId]);
}, [imageryProvider, viewer, layerId, alpha]);
};

const useData = (layer: ComputedLayer | undefined) => {
Expand Down Expand Up @@ -68,7 +79,7 @@ export const useWMS = ({
});
}, [isVisible, show, url, layers, type, minimumLevel, maximumLevel, credit, parameters]);

useImageryProvider(imageryProvider, layer?.id);
useImageryProvider(imageryProvider, layer?.id, property);
};

type TileCoords = { x: number; y: number; level: number };
Expand Down Expand Up @@ -202,7 +213,7 @@ export const useMVT = ({
cachedCalculatedLayerRef.current = layer;
}, [layer]);

useImageryProvider(imageryProvider, layer?.id);
useImageryProvider(imageryProvider, layer?.id, property);
};

const polygonAppearanceFields: (keyof PolygonAppearance)[] = [
Expand Down
1 change: 1 addition & 0 deletions src/core/mantle/types/appearance.ts
Expand Up @@ -173,6 +173,7 @@ export type RasterAppearance = {
minimumLevel?: number;
maximumLevel?: number;
credit?: string;
alpha?: number;
};

export type BoxAppearance = {
Expand Down

0 comments on commit 541f301

Please sign in to comment.