ClickHouse provides geometry types for spatial data. Moose exposes type-safe helpers that map to the correct ClickHouse representations.
A single coordinate pair [x, y].
from moose_lib import Point class Location(BaseModel): coordinates: Point # tuple[float, float]A closed sequence of points forming a boundary (first and last points are the same).
from moose_lib import Ring class Boundary(BaseModel): outline: Ring # list[tuple[float, float]]A sequence of connected points forming a line.
from moose_lib import LineString class Route(BaseModel): path: LineString # list[tuple[float, float]]Multiple line strings.
from moose_lib import MultiLineString class Network(BaseModel): roads: MultiLineString # list[list[tuple[float, float]]]A shape defined by an outer ring and optional inner rings (holes).
from moose_lib import Polygon class Zone(BaseModel): area: Polygon # list[list[tuple[float, float]]]Multiple polygons.
from moose_lib import MultiPolygon class Region(BaseModel): territories: MultiPolygon # list[list[list[tuple[float, float]]]]| ClickHouse Type | TypeScript | Python |
|---|---|---|
Point | ClickHousePoint | Point (tuple[float, float]) |
Ring | ClickHouseRing | Ring (list[tuple[float, float]]) |
LineString | ClickHouseLineString | LineString (list[tuple[float, float]]) |
MultiLineString | ClickHouseMultiLineString | MultiLineString (list[list[...]]) |
Polygon | ClickHousePolygon | Polygon (list[list[...]]) |
Coordinates are represented as [x, y] pairs. For geographic data, this typically means [longitude, latitude].
MultiPolygon | ClickHouseMultiPolygon | MultiPolygon (list[list[list[...]]]) |