Spatial Intelligence: Three dimensions for every observation
- Semantic: What is the object? - Spatial: Exactly where? - Temporal: When observed and how changed? Rich geometry support from start: - SpatialContext: facade, floor, zone, height, lane, direction - Geometry: point, polygon, line with coordinates - CameraPose: position, heading, pitch, roll Precision in 4 steps: GPS -> triangulation -> 3D -> history Stronger Decision Cases with exact location Vision: Continuously updated georeferenced knowledge model Next: Pilot 001
This commit is contained in:
@@ -9,6 +9,35 @@
|
||||
import { ObservationId, MissionId, ArtifactId } from '../common/ids';
|
||||
import { GeoLocation, Confidence, BoundingBox } from '../common/value-objects';
|
||||
|
||||
/**
|
||||
* Spatial Intelligence — Three Dimensions
|
||||
*
|
||||
* Semantic: What is the object? (crack, sign, manhole)
|
||||
* Spatial: Exactly where is it? (east facade, floor 3, 4.2m above ground)
|
||||
* Temporal: When observed and how has it changed? (2026-07-02, increased 12% since 2026-06-15)
|
||||
*/
|
||||
|
||||
export interface SpatialContext {
|
||||
readonly facade?: string; // 'north' | 'south' | 'east' | 'west'
|
||||
readonly floor?: number; // 3
|
||||
readonly zone?: string; // 'N-3-14'
|
||||
readonly height?: number; // 4.2 (meters above ground)
|
||||
readonly lane?: string; // 'left' | 'right'
|
||||
readonly direction?: string; // 'northbound'
|
||||
}
|
||||
|
||||
export interface Geometry {
|
||||
readonly type: 'point' | 'polygon' | 'line';
|
||||
readonly coordinates: number[] | number[][] | number[][][];
|
||||
}
|
||||
|
||||
export interface CameraPose {
|
||||
readonly position: GeoLocation;
|
||||
readonly heading?: number; // degrees
|
||||
readonly pitch?: number; // degrees
|
||||
readonly roll?: number; // degrees
|
||||
}
|
||||
|
||||
export interface Observation {
|
||||
readonly id: ObservationId;
|
||||
readonly missionId: MissionId;
|
||||
@@ -18,6 +47,9 @@ export interface Observation {
|
||||
readonly location: GeoLocation;
|
||||
readonly confidence: Confidence;
|
||||
readonly boundingBox?: BoundingBox;
|
||||
readonly spatialContext?: SpatialContext; // Rich geometry support
|
||||
readonly geometry?: Geometry; // Polygon, line, point
|
||||
readonly cameraPose?: CameraPose; // Camera position and orientation
|
||||
readonly createdAt: Date;
|
||||
}
|
||||
|
||||
@@ -30,6 +62,9 @@ export interface CreateObservationParams {
|
||||
readonly location: GeoLocation;
|
||||
readonly confidence: Confidence;
|
||||
readonly boundingBox?: BoundingBox;
|
||||
readonly spatialContext?: SpatialContext;
|
||||
readonly geometry?: Geometry;
|
||||
readonly cameraPose?: CameraPose;
|
||||
}
|
||||
|
||||
export class ObservationFactory {
|
||||
|
||||
Reference in New Issue
Block a user