• Start

Geospatial

Geometry types

Use GeoJSON-style geometry values in SurrealDB, including Point, LineString, Polygon, and collections, with longitude-before-latitude ordering.

SurrealDB’s geometry type follows the GeoJSON model in which both (and only) a type and coordinates field must be specified. A tuple shorthand (e.g. (50.0, 75.7)) is also accepted when creating a point.

Points are defined with longitude before latitude, as required by the GeoJSON spec. Many map services display latitude first, so be sure to confirm the order when ingesting external data.

-- Tuple shorthand for a point (lon, lat)
CREATE city:london SET centre = (-0.118092, 51.509865);

-- Full GeoJSON object form
CREATE city:london SET centre = {
type: "Point",
coordinates: [-0.118092, 51.509865],
};

See the Geometries reference for LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon, and Collection, including examples for each type.

  • Points capture a single location (venues, vehicles, users).

  • Line strings represent paths (routes, boundaries along a corridor).

  • Polygons represent regions (service areas, countries, floor plans projected to the globe).

Choosing the right type makes spatial predicates (INTERSECTS, CONTAINS, and so on) accurate and keeps indexes meaningful when you add spatial indexing in your schema.

Was this page helpful?