usePlot
Manage a Cesium plotting session with a single composable.
It keeps the session state for the current plotting workflow, including the reactive plot list, the shared timeline, the active plot being defined, and the cleanup/cancellation lifecycle.
In practice, usePlot() is the entry point you use when you want to create, restore, or remove plots while letting the underlying PlotScheme and PlotSkeleton instances drive rendering and interaction.
Usage
vue
<script setup lang="ts">
import {
PlotSchemeBillboard,
PlotSchemeBillboardPinBuilder,
PlotSchemeCylinder,
PlotSchemeEllipse,
PlotSchemeLabel,
PlotSchemePoint,
PlotSchemePolygon,
PlotSchemePolygonArc,
PlotSchemePolygonArrowAttackDirection,
PlotSchemePolygonArrowAttackDirectionTailed,
PlotSchemePolygonArrowClamped,
PlotSchemePolygonArrowStraight,
PlotSchemePolygonArrowStraightSharp,
PlotSchemePolygonArrowUnitCombatOperation,
PlotSchemePolygonArrowUnitCombatOperationTailed,
PlotSchemePolygonAssemblingPlace,
PlotSchemePolygonSmooth,
PlotSchemePolyline,
PlotSchemePolylineCurve,
PlotSchemeRectangle,
usePlot,
} from '@vesium/plot';
const { operate } = usePlot();
const options = [
{
label: 'Billboard',
scheme: PlotSchemeBillboard,
},
{
label: 'BillboardPinBuilder',
scheme: PlotSchemeBillboardPinBuilder,
},
{
label: 'Cylinder',
scheme: PlotSchemeCylinder,
},
{
label: 'Ellipse',
scheme: PlotSchemeEllipse,
},
{
label: 'Label',
scheme: PlotSchemeLabel,
},
{
label: 'Point',
scheme: PlotSchemePoint,
},
{
label: 'Polygon',
scheme: PlotSchemePolygon,
},
{
label: 'PolygonArc',
scheme: PlotSchemePolygonArc,
},
{
label: 'PolygonArrowAttackDirection',
scheme: PlotSchemePolygonArrowAttackDirection,
},
{
label: 'PolygonArrowAttackDirectionTailed',
scheme: PlotSchemePolygonArrowAttackDirectionTailed,
},
{
label: 'PolygonArrowClamped',
scheme: PlotSchemePolygonArrowClamped,
},
{
label: 'PolygonArrowStraight',
scheme: PlotSchemePolygonArrowStraight,
},
{
label: 'PolygonArrowStraightSharp',
scheme: PlotSchemePolygonArrowStraightSharp,
},
{
label: 'PolygonArrowUnitCombatOperation',
scheme: PlotSchemePolygonArrowUnitCombatOperation,
},
{
label: 'PolygonArrowUnitCombatOperationTailed',
scheme: PlotSchemePolygonArrowUnitCombatOperationTailed,
},
{
label: 'PolygonAssemblingPlace',
scheme: PlotSchemePolygonAssemblingPlace,
},
{
label: 'PolygonSmooth',
scheme: PlotSchemePolygonSmooth,
},
{
label: 'Polyline',
scheme: PlotSchemePolyline,
},
{
label: 'PolylineCurve',
scheme: PlotSchemePolylineCurve,
},
{
label: 'Rectangle',
scheme: PlotSchemeRectangle,
},
];
</script>
<template>
<div p="10px" flex="~ wrap" gap="4px">
<button v-for="item in options" :key="item.label" @click="operate({ scheme: item.scheme })">
{{ item.label }}
</button>
</div>
</template>Returns
plots- reactive list of plots in the current sessiontime- the shared plotting timelineoperate- create a new plot or restore an existing oneremove- remove a plot from the sessioncancel- abort the currentoperate()call when one is active