LandOverlay
A geo-anchored 3D model draped onto <LayerViewer>'s map, positioned by real lat/lon alongside the ortho/hillshade/boundary layers.
Usage
import { LayerViewer, LayerControl } from "@/components/LayerViewer";
import type { LayerDef, LayerViewerHandle } from "@/components/LayerViewer";
import type { GeoAnchoredModel } from "@/lib/geo-model-types";
const viewerRef = useRef<LayerViewerHandle>(null);
const [layers, setLayers] = useState<LayerDef[]>([]);
const models: GeoAnchoredModel[] = [
{
id: "duck",
url: "/model3d-samples/duck/model.glb",
title: "Duck (sample glTF)",
lat: 30.2618978800391,
lon: -97.7081778061722,
altitudeMeters: 0,
scale: 10,
},
];
<LayerViewer
ref={viewerRef}
manifest="/layer-viewer-samples/2806-prado/layers.json"
models={models}
onLayersChange={setLayers}
/>
<LayerControl
layers={layers}
onToggle={(id, toggle) => viewerRef.current?.toggleLayer(id, toggle)}
onOpacityChange={(id, opacity) => viewerRef.current?.setOpacity(id, opacity)}
/>