- Categorias:
ST_DISTANCE¶
Retorna a distância mínima do grande círculo entre dois GEOGRAPHY ou a distância euclidiana mínima entre dois objetos GEOMETRY.
Sintaxe¶
ST_DISTANCE( <geography_or_geometry_expression_1> , <geography_or_geometry_expression_2> )
Argumentos¶
- geography_or_geometry_expression_1
- O argumento deve ser do tipo GEOGRAPHY ou GEOMETRY. 
- geography_or_geometry_expression_2
- O argumento deve ser do tipo GEOGRAPHY ou GEOMETRY. 
Retornos¶
Retorna um valor FLOAT, que representa a distância, ou NULL:
- Para valores de entrada GEOGRAPHY, a distância é em metros. 
- Para valores de entrada GEOMETRY, a distância é computada com as mesmas unidades usadas para definir as coordenadas de entrada. 
- Retorna NULL se um ou mais pontos de entrada forem NULL. 
Notas de uso¶
- Para objetos GEOMETRY, a função reporta um erro se os dois objetos GEOMETRY de entrada tiverem SRIDs diferentes. 
Exemplos¶
Os exemplos a seguir usam a função ST_DISTANCE.
Exemplos GEOGRAPHY¶
Mostre a distância em metros entre dois pontos separados por 1 grau ao longo do equador (aproximadamente 111 quilômetros ou 69 milhas).
WITH d AS
  ( ST_DISTANCE(ST_MAKEPOINT(0, 0), ST_MAKEPOINT(1, 0)) )
SELECT d / 1000 AS kilometers, d / 1609 AS miles;
+---------------+--------------+
|    KILOMETERS |        MILES |
|---------------+--------------|
| 111.195101177 | 69.108204585 |
+---------------+--------------+
Mostre a saída da função ST_DISTANCE quando um ou mais valores de entrada forem NULL:
SELECT ST_DISTANCE(ST_MAKEPOINT(0, 0), ST_MAKEPOINT(NULL, NULL)) AS null_input;
+------------+
| NULL_INPUT |
|------------|
|       NULL |
+------------+
Exemplos GEOMETRY¶
O exemplo a seguir compara a distância calculada para objetos de entrada GEOGRAPHY e GEOMETRY.
SELECT ST_DISTANCE(TO_GEOMETRY('POINT(0 0)'), TO_GEOMETRY('POINT(1 1)')) AS geometry_distance,
  ST_DISTANCE(TO_GEOGRAPHY('POINT(0 0)'), TO_GEOGRAPHY('POINT(1 1)')) AS geography_distance;
+-------------------+--------------------+
| GEOMETRY_DISTANCE | GEOGRAPHY_DISTANCE |
|-------------------+--------------------|
|       1.414213562 |   157249.628092508 |
+-------------------+--------------------+
Para exemplos adicionais, consulte Exemplos comparando os tipos de dados GEOGRAPHY e GEOMETRY.