Functions for geodata
Functions for geospatial data and GIS tools.
ST_Point()
| Description |
Creates a point of type |
| Usage |
|
Creates a point of type GEOMETRY from two numbers of type DOUBLE. The arguments can be, for example, geographic coordinates given in degrees as a decimal fraction.
Some usage examples are described in this script.
See example
Create a table with names of organisations and coordinates of their offices. Calculate the distance from zero kilometre of Moscow (55.75579845052788, 37.617679973467204) to the offices of these organisations and display this information in the form of a table:
CREATE TABLE demo.table (organization VARCHAR,
latitude DOUBLE,
longitude DOUBLE);
INSERT INTO demo.table VALUES
('Postgres Professional LLC', 55.69189394353437, 37.564623398131985),
('Oracle Corporation', 30.243622717202587, -97.72199761339736);
SELECT
organization,
round(ST_Distance_Sphere(ST_Point(latitude, longitude),
ST_Point(55.75579845052788, 37.617679973467204)
)/1000)
AS "distance from moscow, km"
FROM demo.table;
+---------------------------+--------------------------+
| organisation | distance from moscow, km |
+---------------------------+--------------------------+
| Postgres Professional LLC | 8 |
+---------------------------+--------------------------+
| Oracle Corporation | 9557 |
+---------------------------+--------------------------+
ST_Distance()
| Description |
Calculates the distance between two points in the plane. |
| Usage |
|
Calculates the distance in the plane between two points of type GEOMETRY.
See example
SELECT
ST_Distance('POINT (0 0)'::GEOMETRY, 'POINT (5 12)'::GEOMETRY)
AS distance;
+----------+
| distance |
+----------+
| 13 |
+----------+
ST_Distance_Sphere()
| Description |
Calculates the distance between two points on the sphere. |
| Usage |
|
Calculates the haversine (great circle of the sphere) distance between two points of type GEOMETRY.
Returns the distance in metres. Input data must be in coordinates given in degrees as a decimal fraction (WGS84 format, EPSG:4326) with axis order: latitude, longitude.
Some usage examples are described in this script.
See example
Create a table with names of organisations and coordinates of their offices. Calculate the distance from zero kilometre of Moscow (55.75579845052788, 37.617679973467204) to the offices of these organisations and display this information in the form of a table:
CREATE TABLE demo.table (organization VARCHAR,
latitude DOUBLE,
longitude DOUBLE);
INSERT INTO demo.table VALUES
('Postgres Professional LLC', 55.69189394353437, 37.564623398131985),
('Oracle Corporation', 30.243622717202587, -97.72199761339736);
SELECT
organization,
round(ST_Distance_Sphere(ST_Point(latitude, longitude),
ST_Point(55.75579845052788, 37.617679973467204)
)/1000)
AS "distance from moscow, km"
FROM demo.table;
+---------------------------+--------------------------+
| organisation | distance from moscow, km |
+---------------------------+--------------------------+
| Postgres Professional LLC | 8 |
+---------------------------+--------------------------+
| Oracle Corporation | 9557 |
+---------------------------+--------------------------+