Funções de Análise das Propriedades de LineString
Uma LineString consiste de valores Point. Você pode extrair pontos particulares de uma LineString, contar o número de pontos que ela contém ou obter o seu tamanho.
EndPoint(ls)Retorna o
Pointque é o ponto final do valorLineStringls.mysql>
SELECT AsText(EndPoint(GeomFromText('LineString(1 1,2 2,3 3)')));+------------------------------------------------------------+ | AsText(EndPoint(GeomFromText('LineString(1 1,2 2,3 3)'))) | +------------------------------------------------------------+ | POINT(3 3) | +------------------------------------------------------------+GLength(ls)Returna como um número de precisão dupla o tamanho do valor
LineStringlsem sua referência espacial associada.mysql>
SELECT GLength(GeomFromText('LineString(1 1,2 2,3 3)'));+--------------------------------------------------+ | GLength(GeomFromText('LineString(1 1,2 2,3 3)')) | +--------------------------------------------------+ | 2.8284271247462 | +--------------------------------------------------+IsClosed(ls)Returna 1 se o valor
LineStringlsé fechado (isto é, seus valoresStartPoint()eEndPoint()são os mesmos). Returna 0 selsnão é fechado, e −1 se ele éNULL.mysql>
SELECT IsClosed(GeomFromText('LineString(1 1,2 2,3 3)'));+---------------------------------------------------+ | IsClosed(GeomFromText('LineString(1 1,2 2,3 3)')) | +---------------------------------------------------+ | 0 | +---------------------------------------------------+NumPoints(ls)retorna o número de pontos no valor
LineStringls.mysql>
SELECT NumPoints(GeomFromText('LineString(1 1,2 2,3 3)'));+----------------------------------------------------+ | NumPoints(GeomFromText('LineString(1 1,2 2,3 3)')) | +----------------------------------------------------+ | 3 | +----------------------------------------------------+PointN(ls,n)Returna o
n-ésimo ponto no valorLinestringls.mysql>
SELECT AsText(PointN(GeomFromText('LineString(1 1,2 2,3 3)'),2));+-----------------------------------------------------------+ | AsText(PointN(GeomFromText('LineString(1 1,2 2,3 3)'),2)) | +-----------------------------------------------------------+ | POINT(2 2) | +-----------------------------------------------------------+StartPoint(ls)Returna o
Pointque é o ponto inicial do valorLineStringls.mysql>
SELECT AsText(StartPoint(GeomFromText('LineString(1 1,2 2,3 3)')));+-------------------------------------------------------------+ | AsText(StartPoint(GeomFromText('LineString(1 1,2 2,3 3)'))) | +-------------------------------------------------------------+ | POINT(1 1) | +-------------------------------------------------------------+
A especificação OpenGIS também define as seguintes funções, que o MariaDB ainda não implementou:
IsRing(ls)Retorna 1 se o valor
LineStringlsé fechado (isto é, seus valoresStartPoinnt()eEndPoint()são os mesmos) e é simples (não passa pelo mesmo ponto mais de uma vez). Retorna 0 selsnão é um anel, −1 se éNULL.