UNPKG

@directus/api

Version:

Directus is a real-time API and App dashboard for managing SQL database content

40 lines (38 loc) 1.21 kB
import { GeometryHelper } from "../types.js"; //#region src/database/helpers/geometry/dialects/mssql.ts var GeometryHelperMSSQL = class extends GeometryHelper { isTrue(expression) { return expression.wrap(``, ` = 1`); } isFalse(expression) { return expression.wrap(``, ` = 0`); } createColumn(table, field) { if (this.geometrySubtype(field)) field.meta.special = [field.type]; return table.specificType(field.field, "geometry"); } asText(table, column, alias) { if (alias) return this.knex.raw("??.??.STAsText() as ??", [ table, column, alias ]); return this.knex.raw("??.??.STAsText()", [table, column]); } fromText(text) { return this.knex.raw("geometry::STGeomFromText(?, 4326)", text); } _intersects(key, geojson) { const geometry = this.fromGeoJSON(geojson); return this.knex.raw("??.STIntersects(?)", [key, geometry]); } _intersects_bbox(key, geojson) { const geometry = this.fromGeoJSON(geojson); return this.knex.raw("??.STEnvelope().STIntersects(?.STEnvelope())", [key, geometry]); } collect(table, column) { return this.knex.raw("geometry::CollectionAggregate(??.??).STAsText()", [table, column]); } }; //#endregion export { GeometryHelperMSSQL };