UNPKG

vue-cesium

Version:
243 lines (242 loc) 9.64 kB
import { VcDrawingPin, VcDrawingPoint, VcDrawingPolygon, VcDrawingPolyline, VcDrawingRectangle, VcDrawingRegular } from 'vue-cesium/es/components/drawings/src'; import type { VcBillboardProps, VcFabActionRef, VcGeometryInstanceProps, VcGeometryPolylineProps, VcLabelProps, VcPointProps, VcPolygonProps, VcPrimitiveProps } from 'vue-cesium/es/components'; import { VcMeasurementArea, VcMeasurementDistance, VcMeasurementHeight, VcMeasurementHorizontal, VcMeasurementPoint, VcMeasurementPolyline, VcMeasurementRectangle, VcMeasurementVertical, VcMeasurementRegular } from 'vue-cesium/es/components/measurements/src'; import { VcAnalysisSightline, VcAnalysisViewshed } from 'vue-cesium/es/components/analyses/src'; import type { CSSProperties, Ref } from 'vue'; import type { VcPickEvent, VcBtnTooltipProps, VcCartesian3Array, VcPosition, VcColor, AppearanceOption, VcActionTooltipProps } from './types'; import { MeasureUnits } from 'vue-cesium/es/shared'; export type DrawingActionOpts = VcActionTooltipProps; export type DrawgingActionCmp = typeof VcDrawingPin | typeof VcDrawingPoint | typeof VcDrawingPolygon | typeof VcDrawingPolyline | typeof VcDrawingRegular | typeof VcDrawingRectangle; export type DrawingActionCmpRef = Ref<typeof VcDrawingPoint | typeof VcDrawingPolyline | typeof VcDrawingPolygon | typeof VcDrawingRegular | typeof VcDrawingRectangle>; export type MeasurementActionCmp = typeof VcMeasurementArea | typeof VcMeasurementDistance | typeof VcMeasurementHeight | typeof VcMeasurementHorizontal | typeof VcMeasurementPoint | typeof VcMeasurementPolyline | typeof VcMeasurementRectangle | typeof VcMeasurementRegular | typeof VcMeasurementVertical; export type MeasurementActionCmpRef = Ref<typeof VcMeasurementDistance | typeof VcMeasurementPolyline | typeof VcMeasurementHorizontal | typeof VcMeasurementVertical | typeof VcMeasurementHeight | typeof VcMeasurementArea | typeof VcMeasurementPoint | typeof VcMeasurementRectangle | typeof VcMeasurementRegular>; export type AnalysisActionCmp = typeof VcAnalysisSightline | typeof VcAnalysisViewshed; export type AnalysisActionCmpRef = Ref<typeof VcAnalysisSightline | typeof VcAnalysisViewshed>; export interface VcDrawingActionInstance { name: string; type: 'measurement' | 'drawing' | 'analysis'; actionStyle: CSSProperties; actionClass: string; actionRef: Ref<VcFabActionRef>; actionOpts: VcActionTooltipProps; cmp: MeasurementActionCmp | DrawgingActionCmp | AnalysisActionCmp; cmpRef: MeasurementActionCmpRef | DrawingActionCmpRef | AnalysisActionCmpRef; cmpOpts: VcMeasurementOpts | VcDrawingOpts; tip: string; isActive: boolean; } export interface VcPointDrawing { show: boolean; position: Cesium.Cartesian3; drawStatus: number; lng: number; lat: number; height: number; slope: number; positionDegrees?: [number, number, number]; labelOpts?: VcLabelProps; pointOpts?: VcPointProps; billboardOpts?: VcBillboardProps; } export interface VcPolylineDrawing { show: boolean; positions: Array<Cesium.Cartesian3>; tempPositions: Array<Cesium.Cartesian3>; drawStatus: number; loop: boolean; area: number; distance: number; distances: Array<number>; labels: Array<VcLabelProps>; angles: Array<number>; dashedLines?: Array<{ positions: Array<Cesium.Cartesian3>; }>; heightPlane?: Cesium.Plane; heightPlaneCV?: Cesium.Plane; height?: number; firstMove?: boolean; tempNextPos?: Cesium.Cartesian3; positionsDegreesArray?: Array<[number, number, number]>; labelOpts?: VcLabelProps; labelsOpts?: VcLabelProps; pointOpts?: VcPointProps; polylineOpts?: VcGeometryPolylineProps; primitiveOpts?: VcPrimitiveProps; polygonOpts?: VcPolygonProps; dashLineOpts?: VcGeometryPolylineProps; dashLinePrimitiveOpts?: VcPrimitiveProps; points?: Array<VcPointProps>; } export interface VcSegmentDrawing { show: boolean; positions: Array<Cesium.Cartesian3>; drawStatus: number; distance: number; labelPosition?: Cesium.Cartesian3; xyPolylinePositions?: Array<Cesium.Cartesian3>; xyBoxPositions?: Array<Cesium.Cartesian3>; xDistance?: number; xLabelPosition?: Cesium.Cartesian3; yDistance?: number; yLabelPosition?: Cesium.Cartesian3; xAngle?: number; xAnglePosition?: Cesium.Cartesian3; yAngle?: number; yAnglePosition?: Cesium.Cartesian3; labels: Array<VcLabelProps>; draggingPlane?: Cesium.Plane; surfaceNormal?: Cesium.Cartesian3; polygonPositions?: Array<Cesium.Cartesian3>; heading?: number; pitch?: number; shadowMap?: Cesium.ShadowMap; lightCamera?: Cesium.Camera; viewshedShadowMap?: Cesium.ShadowMap; spotLightCamera?: Cesium.Camera; frustum?: Cesium.PerspectiveFrustum; positionsDegreesArray?: Array<[number, number, number]>; polygonPositionsDegreesArray?: Array<[number, number, number]>; labelOpts?: VcLabelProps; labelsOpts?: VcLabelProps; pointOpts?: VcPointProps; primitiveOpts?: VcPrimitiveProps; polylineOpts?: VcGeometryPolylineProps; polygonOpts?: VcPolygonProps; points?: Array<VcPointProps>; viewshedOpts?: VcViewshedOpts; } export interface VcDrawingPrimitive { show?: boolean; appearance?: AppearanceOption; depthFailAppearance?: AppearanceOption; classificationType?: number; } export interface VcDrawTipOpts { show?: boolean; pixelOffset?: [number, number]; drawingTipStart?: string; drawingTipEnd?: string; drawingTipEditing?: string; } export interface VcEditorOpts { pixelOffset?: [number, number]; delay?: number; hideDelay?: number; move?: VcBtnTooltipProps; insert?: VcBtnTooltipProps; remove?: VcBtnTooltipProps; removeAll?: VcBtnTooltipProps; } export interface VcDrawingOpts { show?: boolean; drawtip?: VcDrawTipOpts; pointOpts?: VcPointProps; billboardOpts?: VcBillboardProps; labelOpts?: VcLabelProps; labelsOpts?: VcLabelProps; polylineOpts?: VcGeometryPolylineProps; polygonOpts?: VcPolygonProps; editorOpts?: VcEditorOpts; primitiveOpts?: VcPrimitiveProps; geometryInstanceOpts?: VcGeometryInstanceProps; loop?: boolean; heightReference?: number; showComponentLines?: boolean; edge?: number; sightlineType?: string; regular?: boolean; disableDepthTest?: boolean; showDistanceLabel?: boolean; showLabel?: boolean; showAngleLabel?: boolean; autoUpdateLabelPosition?: boolean; } export type MeasurementType = 'distance' | 'component-distance' | 'polyline' | 'horizontal' | 'vertical' | 'height' | 'area' | 'point' | 'rectangle' | 'regular' | 'circle'; export type DrawingType = 'pin' | 'point' | 'polyline' | 'polygon' | 'rectangle' | 'regular' | 'circle'; export type AnalysisType = 'sightline' | 'viewshed'; export type VcDrawingDrawEvt<T = {}> = { index?: number; name: MeasurementType | DrawingType | AnalysisType; renderDatas: Ref<Array<VcPointDrawing | VcPolylineDrawing | VcSegmentDrawing>>; finished: boolean; position?: Cesium.Cartesian3; windowPoistion: Cesium.Cartesian2; type: 'new' | 'move' | 'remove' | 'insert' | 'removeAll' | 'cancel'; } & T; export interface VcDrawingActiveEvt { type: MeasurementType | DrawingType | AnalysisType; option: VcDrawingActionInstance; isActive: boolean; } export interface VcDrawingEditorEvt { type: 'move' | 'insert' | 'remove' | 'removeAll'; renderDatas: Ref<Array<VcPointDrawing | VcPolylineDrawing | VcSegmentDrawing>>; name: MeasurementType | DrawingType | AnalysisType; index: number; } export interface VcDrawingMouseEvt { type: 'onmouseout' | 'onmouseover'; name: MeasurementType | DrawingType | AnalysisType; target: VcPickEvent; } export interface VcMeasurementOpts extends VcDrawingOpts { measureUnits?: MeasureUnits; decimals?: { distance?: number; angle?: number; area?: number; lng?: number; lat?: number; height?: number; slope?: number; }; locale?: string; autoUpdateLabelPosition?: boolean; } export interface VcComponentDistanceMeasurementOpts extends VcMeasurementOpts { showComponentLines?: boolean; xLabelOpts?: VcLabelProps; xAngleLabelOpts?: VcLabelProps; yLabelOpts?: VcLabelProps; yAngleLabelOpts?: VcLabelProps; } export interface VcPolylineMeasurementOpts extends VcMeasurementOpts { labelsOpts?: VcLabelProps; showAngleLabel?: boolean; showDistanceLabel?: boolean; loop?: boolean; } export interface VcHorizontalMeasurementOpts extends VcPolylineMeasurementOpts { showDashedLine?: boolean; dashLineOpts?: VcGeometryPolylineProps; } export interface VcRegularMeasurementOpts extends VcPolylineMeasurementOpts { edge?: number; loop?: boolean; } export interface VcViewshedAnalysisOpts extends VcDrawingOpts { viewshedOpts?: VcViewshedOpts; } export type VcDrawingPreRenderDatas = Array<VcCartesian3Array | VcPosition>; export type MeasurementDecimals = { distance?: number; angle?: number; area?: number; lng?: number; lat?: number; height?: number; slope?: number; }; export type VcViewshedOpts = { fovH?: number; fovV?: number; invisibleColor?: VcColor; offsetHeight?: number; visibleColor?: VcColor; show?: boolean; showGridLine?: boolean; lineColor?: VcColor; faceColor?: VcColor; }; export type VcMeasurementFormatter = (value: number, defaultUnits: string, defaultLocale?: any, defaultDecimals?: any) => string;