O Lindorm GanosBase oferece suporte a tipos de dados geométricos baseados no padrão Open Geospatial Consortium (OGC). Utilize esses tipos para definir colunas espaciais em tabelas espaço-temporais e para ler e gravar objetos geométricos nos formatos Well-Known Text (WKT) ou Well-Known Binary (WKB).
Hierarquia de tipos
Geometry é o tipo pai abstrato. Todos os valores geométricos pertencem a um de seus subtipos concretos, divididos em duas categorias:
Tipos atômicos — representam uma única forma: Point, LineString, Polygon
Tipos de coleção — representam um conjunto de formas: MultiPoint, MultiLineString, MultiPolygon, GeometryCollection
Ao definir uma coluna espacial, utilize um subtipo específico. Uma coluna tipada como Geometry armazena qualquer subtipo, mas um índice espaço-temporal criado para um subtipo específico não se aplica a uma coluna Geometry.
Tipos geométricos
|
Tipo |
Descrição |
Casos de uso |
|
Geometry |
Tipo pai abstrato. Armazena qualquer subtipo, mas a indexação espaço-temporal não está disponível no nível do subtipo. Evite usar Geometry como tipo de coluna; prefira um subtipo específico. |
— |
|
Point |
Localização única identificada por longitude (x) e latitude (y). Objetos pontuais tridimensionais não são utilizáveis em cálculos; o Lindorm GanosBase os converte para bidimensionais durante o processamento. |
Coordenadas GPS de veículos e embarcações |
|
LineString |
Sequência ordenada de dois ou mais pontos em que o ponto final de cada segmento de linha corresponde ao ponto inicial do próximo. Dois segmentos podem compartilhar um vértice. |
Ruas, trajetórias de veículos |
|
Polygon |
Forma fechada cujo limite externo é uma linha fechada (o ponto inicial coincide com o ponto final). Requer pelo menos três pontos e pode conter um limite interno (buraco). |
Geofences, lotes de terreno, divisões administrativas, retângulos, círculos |
|
MultiPoint |
Coleção de zero ou mais objetos Point. |
Localizações de bilheterias em um parque de diversões |
|
MultiLineString |
Coleção de zero ou mais objetos LineString. |
Rua composta por vários segmentos de linha |
|
MultiPolygon |
Coleção de zero ou mais objetos Polygon. |
Cidade formada por vários municípios ou distritos |
|
GeometryCollection |
Coleção de zero ou mais objetos geométricos de qualquer tipo. |
Conjuntos de dados com geometrias mistas |
Escolha um subtipo
|
Se seus dados representam... |
Use |
|
Uma localização única (ponto GPS, marco geográfico) |
Point |
|
Um caminho ou trajetória (trecho de estrada, rota de veículo) |
LineString |
|
Uma área fechada (limite, região, zona) |
Polygon |
|
Várias localizações discretas |
MultiPoint |
|
Múltiplos caminhos |
MultiLineString |
|
Diversas áreas |
MultiPolygon |
|
Uma mistura de formas |
GeometryCollection |
Formato WKT
Well-Known Text (WKT) é o formato textual definido pelo OGC para descrever objetos geométricos. Para obter mais informações, consulte Well-Known Text.
Strings WKT não podem conter um Spatial Reference IDentifier (SRID).
O GanosBase oferece suporte a WKT para os seguintes tipos: Point, LineString, Polygon, MultiPoint, MultiLineString e MultiPolygon.
Referência de sintaxe
|
Tipo |
Sintaxe |
|
Point |
|
|
LineString |
|
|
Polygon |
|
|
MultiPoint |
|
|
MultiLineString |
|
|
MultiPolygon |
|
|
GeometryCollection |
|
Exemplos de WKT
-- Point
POINT(-10.1 3.3)
POINT EMPTY
-- LineString
LINESTRING(3 4, 10 50, 20 25)
LINESTRING EMPTY
-- Polygon: outer boundary only
POLYGON((2 2, 2 8, 8 8, 8 2, 2 2))
-- Polygon: outer boundary + inner boundary (hole)
POLYGON((0.5 0.5, 5 0, 5 5, 0 5, 0.5 0.5), (1.5 1, 4 3, 4 1, 1.5 1))
POLYGON EMPTY
-- MultiPoint
MULTIPOINT(10 40, 40 30, 20 20, 30 10)
-- Equivalent to: POINT(10 40), POINT(40 30), POINT(20 20), POINT(30 10)
-- MultiLineString
MULTILINESTRING((10 10, 20 20, 10 40), (40 40, 30 30, 40 20, 30 10))
-- Equivalent to: LINESTRING(10 10, 20 20, 10 40) and LINESTRING(40 40, 30 30, 40 20, 30 10)
-- MultiPolygon: two polygons with outer boundary only
MULTIPOLYGON(((30 20, 45 40, 10 40, 30 20)), ((15 5, 40 10, 10 20, 5 10, 15 5)))
-- MultiPolygon: one polygon with outer boundary only + one polygon with outer and inner boundary
MULTIPOLYGON(((40 40, 20 45, 45 30, 40 40)), ((20 35, 10 30, 10 10, 30 5, 45 20, 20 35), (30 20, 20 15, 20 25, 30 20)))
-- GeometryCollection
GEOMETRYCOLLECTION(POINT(40 10), LINESTRING(10 10, 20 20, 10 40), POLYGON((40 40, 20 45, 45 30, 40 40)))
Construir um objeto geométrico a partir de WKT
Utilize ST_GeomFromText para construir um objeto geométrico a partir de uma string WKT. Para obter mais informações, consulte Geometry constructors.
Construir um objeto geométrico a partir de coordenadas
Use ST_MakePoint para criar um objeto Point a partir de coordenadas, ou ST_LineFromMultiPoint para gerar um LineString a partir de múltiplas coordenadas de pontos. Para obter mais informações, consulte Geometry constructors.
Formato WKB
Well-Known Binary (WKB) é o formato binário definido pelo OGC para descrever objetos geométricos. Para obter mais informações, consulte Well-Known Binary.
O GanosBase oferece suporte a WKB para os seguintes tipos: Point, LineString, Polygon, MultiPoint, MultiLineString e MultiPolygon.
Objetos geométricos são gerados como strings WKB hexadecimais. O exemplo abaixo mostra uma consulta que retorna um resultado WKB:
SELECT ST_GeomFromText('POINT(-10.1 3.3)') as p;
Saída:
+--------------------------------+
| p |
+--------------------------------+
| 0020000001000010E6C02433333333 |
| 3333400A666666666666 |
+--------------------------------+
Utilize ST_AsText para exibir um objeto geométrico como uma string WKT. Para obter mais informações, consulte Output functions.