Spatial Extensions MySQL — Point
A Extensão Espacial do MySQL disponibiliza a criação, o armazenamento e a analise de formas geométricas:
- Tipo de dados para representar valores espaciais (
GEOMETRY
,POINT
,LINESTRING
,POLYGON
) - Funções para manipulação de dados espaciais (
ST_Distance_Sphere(g1, g2 [, radius])
) - Index para otimizar o acesso à colunas com dados espaciais
Basicamente o tipo de dado espacial do mysql fornece as ferramentas necessárias para se trabalhar com formas geométricas e pontos no espaço.
A inclusão de valores no POINT segue a seguinte forma: POINT(longitude, latitude)
Para trabalharmos com os tipo espacial, podemos utilizar as funções com inicio de ST:
ST_Distance_Sphere(pt1, pt2 [,radius]) O parâmetro [,radius] é opcional, quando não informado ele assume o valor da circunferência da Terra. O retorno da função está em metros.
ST_GeomFromText(‘Text’) Converte um texto para um tipo Geométrico
Ponto: ST_GeomFromText(‘POINT(1 1)’)
Linha: ST_GeomFromText(‘LINESTRING(0 0,1 1,2 2)’)
Poligono: ST_GeomFromText(‘POLYGON((0 0,10 0,10 10,0 10,0 0),(5 5,7 5,7 7,5 7, 5 5))’)
Exadecimal: ST_GeomFromWKB(X’0101000000000000000000F03F000000000000F03F’)
É possivel criar spatial indexes para as engines InnoDB e MyISAM. A declaração é semelhante a criação de indexes tradicional. Só é possivel criar indexes espaciais em colunas NOT NULL.