Clean up format of SQL.

This commit is contained in:
Bruce Momjian 2002-11-08 20:22:12 +00:00
parent 4c1383efd1
commit a5715eecb6
2 changed files with 274 additions and 274 deletions

View File

@ -11,7 +11,7 @@ psql:../cube/cube.sql:17: NOTICE: Argument type "cube" is only a shell
-- --
-- The radius of the Earth we are using. -- The radius of the Earth we are using.
-- --
select earth()::numeric(20,5); SELECT earth()::numeric(20,5);
earth earth
--------------- ---------------
6378168.00000 6378168.00000
@ -20,55 +20,55 @@ select earth()::numeric(20,5);
-- --
-- Convert straight line distances to great circle distances. -- Convert straight line distances to great circle distances.
-- --
select (pi()*earth())::numeric(20,5); SELECT (pi()*earth())::numeric(20,5);
numeric numeric
---------------- ----------------
20037605.73216 20037605.73216
(1 row) (1 row)
select sec_to_gc(0)::numeric(20,5); SELECT sec_to_gc(0)::numeric(20,5);
sec_to_gc sec_to_gc
----------- -----------
0.00000 0.00000
(1 row) (1 row)
select sec_to_gc(2*earth())::numeric(20,5); SELECT sec_to_gc(2*earth())::numeric(20,5);
sec_to_gc sec_to_gc
---------------- ----------------
20037605.73216 20037605.73216
(1 row) (1 row)
select sec_to_gc(10*earth())::numeric(20,5); SELECT sec_to_gc(10*earth())::numeric(20,5);
sec_to_gc sec_to_gc
---------------- ----------------
20037605.73216 20037605.73216
(1 row) (1 row)
select sec_to_gc(-earth())::numeric(20,5); SELECT sec_to_gc(-earth())::numeric(20,5);
sec_to_gc sec_to_gc
----------- -----------
0.00000 0.00000
(1 row) (1 row)
select sec_to_gc(1000)::numeric(20,5); SELECT sec_to_gc(1000)::numeric(20,5);
sec_to_gc sec_to_gc
------------ ------------
1000.00000 1000.00000
(1 row) (1 row)
select sec_to_gc(10000)::numeric(20,5); SELECT sec_to_gc(10000)::numeric(20,5);
sec_to_gc sec_to_gc
------------- -------------
10000.00102 10000.00102
(1 row) (1 row)
select sec_to_gc(100000)::numeric(20,5); SELECT sec_to_gc(100000)::numeric(20,5);
sec_to_gc sec_to_gc
-------------- --------------
100001.02426 100001.02426
(1 row) (1 row)
select sec_to_gc(1000000)::numeric(20,5); SELECT sec_to_gc(1000000)::numeric(20,5);
sec_to_gc sec_to_gc
--------------- ---------------
1001027.07131 1001027.07131
@ -77,55 +77,55 @@ select sec_to_gc(1000000)::numeric(20,5);
-- --
-- Convert great circle distances to straight line distances. -- Convert great circle distances to straight line distances.
-- --
select gc_to_sec(0)::numeric(20,5); SELECT gc_to_sec(0)::numeric(20,5);
gc_to_sec gc_to_sec
----------- -----------
0.00000 0.00000
(1 row) (1 row)
select gc_to_sec(sec_to_gc(2*earth()))::numeric(20,5); SELECT gc_to_sec(sec_to_gc(2*earth()))::numeric(20,5);
gc_to_sec gc_to_sec
---------------- ----------------
12756336.00000 12756336.00000
(1 row) (1 row)
select gc_to_sec(10*earth())::numeric(20,5); SELECT gc_to_sec(10*earth())::numeric(20,5);
gc_to_sec gc_to_sec
---------------- ----------------
12756336.00000 12756336.00000
(1 row) (1 row)
select gc_to_sec(pi()*earth())::numeric(20,5); SELECT gc_to_sec(pi()*earth())::numeric(20,5);
gc_to_sec gc_to_sec
---------------- ----------------
12756336.00000 12756336.00000
(1 row) (1 row)
select gc_to_sec(-1000)::numeric(20,5); SELECT gc_to_sec(-1000)::numeric(20,5);
gc_to_sec gc_to_sec
----------- -----------
0.00000 0.00000
(1 row) (1 row)
select gc_to_sec(1000)::numeric(20,5); SELECT gc_to_sec(1000)::numeric(20,5);
gc_to_sec gc_to_sec
------------ ------------
1000.00000 1000.00000
(1 row) (1 row)
select gc_to_sec(10000)::numeric(20,5); SELECT gc_to_sec(10000)::numeric(20,5);
gc_to_sec gc_to_sec
------------ ------------
9999.99898 9999.99898
(1 row) (1 row)
select gc_to_sec(100000)::numeric(20,5); SELECT gc_to_sec(100000)::numeric(20,5);
gc_to_sec gc_to_sec
------------- -------------
99998.97577 99998.97577
(1 row) (1 row)
select gc_to_sec(1000000)::numeric(20,5); SELECT gc_to_sec(1000000)::numeric(20,5);
gc_to_sec gc_to_sec
-------------- --------------
998976.08618 998976.08618
@ -135,7 +135,7 @@ select gc_to_sec(1000000)::numeric(20,5);
-- Set coordinates using latitude and longitude. -- Set coordinates using latitude and longitude.
-- Extract each coordinate separately so we can round them. -- Extract each coordinate separately so we can round them.
-- --
select cube_ll_coord(ll_to_earth(0,0),1)::numeric(20,5), SELECT cube_ll_coord(ll_to_earth(0,0),1)::numeric(20,5),
cube_ll_coord(ll_to_earth(0,0),2)::numeric(20,5), cube_ll_coord(ll_to_earth(0,0),2)::numeric(20,5),
cube_ll_coord(ll_to_earth(0,0),3)::numeric(20,5); cube_ll_coord(ll_to_earth(0,0),3)::numeric(20,5);
cube_ll_coord | cube_ll_coord | cube_ll_coord cube_ll_coord | cube_ll_coord | cube_ll_coord
@ -143,7 +143,7 @@ select cube_ll_coord(ll_to_earth(0,0),1)::numeric(20,5),
6378168.00000 | 0.00000 | 0.00000 6378168.00000 | 0.00000 | 0.00000
(1 row) (1 row)
select cube_ll_coord(ll_to_earth(360,360),1)::numeric(20,5), SELECT cube_ll_coord(ll_to_earth(360,360),1)::numeric(20,5),
cube_ll_coord(ll_to_earth(360,360),2)::numeric(20,5), cube_ll_coord(ll_to_earth(360,360),2)::numeric(20,5),
cube_ll_coord(ll_to_earth(360,360),3)::numeric(20,5); cube_ll_coord(ll_to_earth(360,360),3)::numeric(20,5);
cube_ll_coord | cube_ll_coord | cube_ll_coord cube_ll_coord | cube_ll_coord | cube_ll_coord
@ -151,7 +151,7 @@ select cube_ll_coord(ll_to_earth(360,360),1)::numeric(20,5),
6378168.00000 | 0.00000 | 0.00000 6378168.00000 | 0.00000 | 0.00000
(1 row) (1 row)
select cube_ll_coord(ll_to_earth(180,180),1)::numeric(20,5), SELECT cube_ll_coord(ll_to_earth(180,180),1)::numeric(20,5),
cube_ll_coord(ll_to_earth(180,180),2)::numeric(20,5), cube_ll_coord(ll_to_earth(180,180),2)::numeric(20,5),
cube_ll_coord(ll_to_earth(180,180),3)::numeric(20,5); cube_ll_coord(ll_to_earth(180,180),3)::numeric(20,5);
cube_ll_coord | cube_ll_coord | cube_ll_coord cube_ll_coord | cube_ll_coord | cube_ll_coord
@ -159,7 +159,7 @@ select cube_ll_coord(ll_to_earth(180,180),1)::numeric(20,5),
6378168.00000 | 0.00000 | 0.00000 6378168.00000 | 0.00000 | 0.00000
(1 row) (1 row)
select cube_ll_coord(ll_to_earth(180,360),1)::numeric(20,5), SELECT cube_ll_coord(ll_to_earth(180,360),1)::numeric(20,5),
cube_ll_coord(ll_to_earth(180,360),2)::numeric(20,5), cube_ll_coord(ll_to_earth(180,360),2)::numeric(20,5),
cube_ll_coord(ll_to_earth(180,360),3)::numeric(20,5); cube_ll_coord(ll_to_earth(180,360),3)::numeric(20,5);
cube_ll_coord | cube_ll_coord | cube_ll_coord cube_ll_coord | cube_ll_coord | cube_ll_coord
@ -167,7 +167,7 @@ select cube_ll_coord(ll_to_earth(180,360),1)::numeric(20,5),
-6378168.00000 | 0.00000 | 0.00000 -6378168.00000 | 0.00000 | 0.00000
(1 row) (1 row)
select cube_ll_coord(ll_to_earth(-180,-360),1)::numeric(20,5), SELECT cube_ll_coord(ll_to_earth(-180,-360),1)::numeric(20,5),
cube_ll_coord(ll_to_earth(-180,-360),2)::numeric(20,5), cube_ll_coord(ll_to_earth(-180,-360),2)::numeric(20,5),
cube_ll_coord(ll_to_earth(-180,-360),3)::numeric(20,5); cube_ll_coord(ll_to_earth(-180,-360),3)::numeric(20,5);
cube_ll_coord | cube_ll_coord | cube_ll_coord cube_ll_coord | cube_ll_coord | cube_ll_coord
@ -175,7 +175,7 @@ select cube_ll_coord(ll_to_earth(-180,-360),1)::numeric(20,5),
-6378168.00000 | 0.00000 | 0.00000 -6378168.00000 | 0.00000 | 0.00000
(1 row) (1 row)
select cube_ll_coord(ll_to_earth(0,180),1)::numeric(20,5), SELECT cube_ll_coord(ll_to_earth(0,180),1)::numeric(20,5),
cube_ll_coord(ll_to_earth(0,180),2)::numeric(20,5), cube_ll_coord(ll_to_earth(0,180),2)::numeric(20,5),
cube_ll_coord(ll_to_earth(0,180),3)::numeric(20,5); cube_ll_coord(ll_to_earth(0,180),3)::numeric(20,5);
cube_ll_coord | cube_ll_coord | cube_ll_coord cube_ll_coord | cube_ll_coord | cube_ll_coord
@ -183,7 +183,7 @@ select cube_ll_coord(ll_to_earth(0,180),1)::numeric(20,5),
-6378168.00000 | 0.00000 | 0.00000 -6378168.00000 | 0.00000 | 0.00000
(1 row) (1 row)
select cube_ll_coord(ll_to_earth(0,-180),1)::numeric(20,5), SELECT cube_ll_coord(ll_to_earth(0,-180),1)::numeric(20,5),
cube_ll_coord(ll_to_earth(0,-180),2)::numeric(20,5), cube_ll_coord(ll_to_earth(0,-180),2)::numeric(20,5),
cube_ll_coord(ll_to_earth(0,-180),3)::numeric(20,5); cube_ll_coord(ll_to_earth(0,-180),3)::numeric(20,5);
cube_ll_coord | cube_ll_coord | cube_ll_coord cube_ll_coord | cube_ll_coord | cube_ll_coord
@ -191,7 +191,7 @@ select cube_ll_coord(ll_to_earth(0,-180),1)::numeric(20,5),
-6378168.00000 | 0.00000 | 0.00000 -6378168.00000 | 0.00000 | 0.00000
(1 row) (1 row)
select cube_ll_coord(ll_to_earth(90,0),1)::numeric(20,5), SELECT cube_ll_coord(ll_to_earth(90,0),1)::numeric(20,5),
cube_ll_coord(ll_to_earth(90,0),2)::numeric(20,5), cube_ll_coord(ll_to_earth(90,0),2)::numeric(20,5),
cube_ll_coord(ll_to_earth(90,0),3)::numeric(20,5); cube_ll_coord(ll_to_earth(90,0),3)::numeric(20,5);
cube_ll_coord | cube_ll_coord | cube_ll_coord cube_ll_coord | cube_ll_coord | cube_ll_coord
@ -199,7 +199,7 @@ select cube_ll_coord(ll_to_earth(90,0),1)::numeric(20,5),
0.00000 | 0.00000 | 6378168.00000 0.00000 | 0.00000 | 6378168.00000
(1 row) (1 row)
select cube_ll_coord(ll_to_earth(90,180),1)::numeric(20,5), SELECT cube_ll_coord(ll_to_earth(90,180),1)::numeric(20,5),
cube_ll_coord(ll_to_earth(90,180),2)::numeric(20,5), cube_ll_coord(ll_to_earth(90,180),2)::numeric(20,5),
cube_ll_coord(ll_to_earth(90,180),3)::numeric(20,5); cube_ll_coord(ll_to_earth(90,180),3)::numeric(20,5);
cube_ll_coord | cube_ll_coord | cube_ll_coord cube_ll_coord | cube_ll_coord | cube_ll_coord
@ -207,7 +207,7 @@ select cube_ll_coord(ll_to_earth(90,180),1)::numeric(20,5),
0.00000 | 0.00000 | 6378168.00000 0.00000 | 0.00000 | 6378168.00000
(1 row) (1 row)
select cube_ll_coord(ll_to_earth(-90,0),1)::numeric(20,5), SELECT cube_ll_coord(ll_to_earth(-90,0),1)::numeric(20,5),
cube_ll_coord(ll_to_earth(-90,0),2)::numeric(20,5), cube_ll_coord(ll_to_earth(-90,0),2)::numeric(20,5),
cube_ll_coord(ll_to_earth(-90,0),3)::numeric(20,5); cube_ll_coord(ll_to_earth(-90,0),3)::numeric(20,5);
cube_ll_coord | cube_ll_coord | cube_ll_coord cube_ll_coord | cube_ll_coord | cube_ll_coord
@ -215,7 +215,7 @@ select cube_ll_coord(ll_to_earth(-90,0),1)::numeric(20,5),
0.00000 | 0.00000 | -6378168.00000 0.00000 | 0.00000 | -6378168.00000
(1 row) (1 row)
select cube_ll_coord(ll_to_earth(-90,180),1)::numeric(20,5), SELECT cube_ll_coord(ll_to_earth(-90,180),1)::numeric(20,5),
cube_ll_coord(ll_to_earth(-90,180),2)::numeric(20,5), cube_ll_coord(ll_to_earth(-90,180),2)::numeric(20,5),
cube_ll_coord(ll_to_earth(-90,180),3)::numeric(20,5); cube_ll_coord(ll_to_earth(-90,180),3)::numeric(20,5);
cube_ll_coord | cube_ll_coord | cube_ll_coord cube_ll_coord | cube_ll_coord | cube_ll_coord
@ -226,121 +226,121 @@ select cube_ll_coord(ll_to_earth(-90,180),1)::numeric(20,5),
-- --
-- Test getting the latitude of a location. -- Test getting the latitude of a location.
-- --
select latitude(ll_to_earth(0,0))::numeric(20,10); SELECT latitude(ll_to_earth(0,0))::numeric(20,10);
latitude latitude
-------------- --------------
0.0000000000 0.0000000000
(1 row) (1 row)
select latitude(ll_to_earth(45,0))::numeric(20,10); SELECT latitude(ll_to_earth(45,0))::numeric(20,10);
latitude latitude
--------------- ---------------
45.0000000000 45.0000000000
(1 row) (1 row)
select latitude(ll_to_earth(90,0))::numeric(20,10); SELECT latitude(ll_to_earth(90,0))::numeric(20,10);
latitude latitude
--------------- ---------------
90.0000000000 90.0000000000
(1 row) (1 row)
select latitude(ll_to_earth(-45,0))::numeric(20,10); SELECT latitude(ll_to_earth(-45,0))::numeric(20,10);
latitude latitude
---------------- ----------------
-45.0000000000 -45.0000000000
(1 row) (1 row)
select latitude(ll_to_earth(-90,0))::numeric(20,10); SELECT latitude(ll_to_earth(-90,0))::numeric(20,10);
latitude latitude
---------------- ----------------
-90.0000000000 -90.0000000000
(1 row) (1 row)
select latitude(ll_to_earth(0,90))::numeric(20,10); SELECT latitude(ll_to_earth(0,90))::numeric(20,10);
latitude latitude
-------------- --------------
0.0000000000 0.0000000000
(1 row) (1 row)
select latitude(ll_to_earth(45,90))::numeric(20,10); SELECT latitude(ll_to_earth(45,90))::numeric(20,10);
latitude latitude
--------------- ---------------
45.0000000000 45.0000000000
(1 row) (1 row)
select latitude(ll_to_earth(90,90))::numeric(20,10); SELECT latitude(ll_to_earth(90,90))::numeric(20,10);
latitude latitude
--------------- ---------------
90.0000000000 90.0000000000
(1 row) (1 row)
select latitude(ll_to_earth(-45,90))::numeric(20,10); SELECT latitude(ll_to_earth(-45,90))::numeric(20,10);
latitude latitude
---------------- ----------------
-45.0000000000 -45.0000000000
(1 row) (1 row)
select latitude(ll_to_earth(-90,90))::numeric(20,10); SELECT latitude(ll_to_earth(-90,90))::numeric(20,10);
latitude latitude
---------------- ----------------
-90.0000000000 -90.0000000000
(1 row) (1 row)
select latitude(ll_to_earth(0,180))::numeric(20,10); SELECT latitude(ll_to_earth(0,180))::numeric(20,10);
latitude latitude
-------------- --------------
0.0000000000 0.0000000000
(1 row) (1 row)
select latitude(ll_to_earth(45,180))::numeric(20,10); SELECT latitude(ll_to_earth(45,180))::numeric(20,10);
latitude latitude
--------------- ---------------
45.0000000000 45.0000000000
(1 row) (1 row)
select latitude(ll_to_earth(90,180))::numeric(20,10); SELECT latitude(ll_to_earth(90,180))::numeric(20,10);
latitude latitude
--------------- ---------------
90.0000000000 90.0000000000
(1 row) (1 row)
select latitude(ll_to_earth(-45,180))::numeric(20,10); SELECT latitude(ll_to_earth(-45,180))::numeric(20,10);
latitude latitude
---------------- ----------------
-45.0000000000 -45.0000000000
(1 row) (1 row)
select latitude(ll_to_earth(-90,180))::numeric(20,10); SELECT latitude(ll_to_earth(-90,180))::numeric(20,10);
latitude latitude
---------------- ----------------
-90.0000000000 -90.0000000000
(1 row) (1 row)
select latitude(ll_to_earth(0,-90))::numeric(20,10); SELECT latitude(ll_to_earth(0,-90))::numeric(20,10);
latitude latitude
-------------- --------------
0.0000000000 0.0000000000
(1 row) (1 row)
select latitude(ll_to_earth(45,-90))::numeric(20,10); SELECT latitude(ll_to_earth(45,-90))::numeric(20,10);
latitude latitude
--------------- ---------------
45.0000000000 45.0000000000
(1 row) (1 row)
select latitude(ll_to_earth(90,-90))::numeric(20,10); SELECT latitude(ll_to_earth(90,-90))::numeric(20,10);
latitude latitude
--------------- ---------------
90.0000000000 90.0000000000
(1 row) (1 row)
select latitude(ll_to_earth(-45,-90))::numeric(20,10); SELECT latitude(ll_to_earth(-45,-90))::numeric(20,10);
latitude latitude
---------------- ----------------
-45.0000000000 -45.0000000000
(1 row) (1 row)
select latitude(ll_to_earth(-90,-90))::numeric(20,10); SELECT latitude(ll_to_earth(-90,-90))::numeric(20,10);
latitude latitude
---------------- ----------------
-90.0000000000 -90.0000000000
@ -349,121 +349,121 @@ select latitude(ll_to_earth(-90,-90))::numeric(20,10);
-- --
-- Test getting the longitude of a location. -- Test getting the longitude of a location.
-- --
select longitude(ll_to_earth(0,0))::numeric(20,10); SELECT longitude(ll_to_earth(0,0))::numeric(20,10);
longitude longitude
-------------- --------------
0.0000000000 0.0000000000
(1 row) (1 row)
select longitude(ll_to_earth(45,0))::numeric(20,10); SELECT longitude(ll_to_earth(45,0))::numeric(20,10);
longitude longitude
-------------- --------------
0.0000000000 0.0000000000
(1 row) (1 row)
select longitude(ll_to_earth(90,0))::numeric(20,10); SELECT longitude(ll_to_earth(90,0))::numeric(20,10);
longitude longitude
-------------- --------------
0.0000000000 0.0000000000
(1 row) (1 row)
select longitude(ll_to_earth(-45,0))::numeric(20,10); SELECT longitude(ll_to_earth(-45,0))::numeric(20,10);
longitude longitude
-------------- --------------
0.0000000000 0.0000000000
(1 row) (1 row)
select longitude(ll_to_earth(-90,0))::numeric(20,10); SELECT longitude(ll_to_earth(-90,0))::numeric(20,10);
longitude longitude
-------------- --------------
0.0000000000 0.0000000000
(1 row) (1 row)
select longitude(ll_to_earth(0,90))::numeric(20,10); SELECT longitude(ll_to_earth(0,90))::numeric(20,10);
longitude longitude
--------------- ---------------
90.0000000000 90.0000000000
(1 row) (1 row)
select longitude(ll_to_earth(45,90))::numeric(20,10); SELECT longitude(ll_to_earth(45,90))::numeric(20,10);
longitude longitude
--------------- ---------------
90.0000000000 90.0000000000
(1 row) (1 row)
select longitude(ll_to_earth(90,90))::numeric(20,10); SELECT longitude(ll_to_earth(90,90))::numeric(20,10);
longitude longitude
--------------- ---------------
90.0000000000 90.0000000000
(1 row) (1 row)
select longitude(ll_to_earth(-45,90))::numeric(20,10); SELECT longitude(ll_to_earth(-45,90))::numeric(20,10);
longitude longitude
--------------- ---------------
90.0000000000 90.0000000000
(1 row) (1 row)
select longitude(ll_to_earth(-90,90))::numeric(20,10); SELECT longitude(ll_to_earth(-90,90))::numeric(20,10);
longitude longitude
--------------- ---------------
90.0000000000 90.0000000000
(1 row) (1 row)
select longitude(ll_to_earth(0,180))::numeric(20,10); SELECT longitude(ll_to_earth(0,180))::numeric(20,10);
longitude longitude
---------------- ----------------
180.0000000000 180.0000000000
(1 row) (1 row)
select longitude(ll_to_earth(45,180))::numeric(20,10); SELECT longitude(ll_to_earth(45,180))::numeric(20,10);
longitude longitude
---------------- ----------------
180.0000000000 180.0000000000
(1 row) (1 row)
select longitude(ll_to_earth(90,180))::numeric(20,10); SELECT longitude(ll_to_earth(90,180))::numeric(20,10);
longitude longitude
---------------- ----------------
180.0000000000 180.0000000000
(1 row) (1 row)
select longitude(ll_to_earth(-45,180))::numeric(20,10); SELECT longitude(ll_to_earth(-45,180))::numeric(20,10);
longitude longitude
---------------- ----------------
180.0000000000 180.0000000000
(1 row) (1 row)
select longitude(ll_to_earth(-90,180))::numeric(20,10); SELECT longitude(ll_to_earth(-90,180))::numeric(20,10);
longitude longitude
---------------- ----------------
180.0000000000 180.0000000000
(1 row) (1 row)
select longitude(ll_to_earth(0,-90))::numeric(20,10); SELECT longitude(ll_to_earth(0,-90))::numeric(20,10);
longitude longitude
---------------- ----------------
-90.0000000000 -90.0000000000
(1 row) (1 row)
select longitude(ll_to_earth(45,-90))::numeric(20,10); SELECT longitude(ll_to_earth(45,-90))::numeric(20,10);
longitude longitude
---------------- ----------------
-90.0000000000 -90.0000000000
(1 row) (1 row)
select longitude(ll_to_earth(90,-90))::numeric(20,10); SELECT longitude(ll_to_earth(90,-90))::numeric(20,10);
longitude longitude
---------------- ----------------
-90.0000000000 -90.0000000000
(1 row) (1 row)
select longitude(ll_to_earth(-45,-90))::numeric(20,10); SELECT longitude(ll_to_earth(-45,-90))::numeric(20,10);
longitude longitude
---------------- ----------------
-90.0000000000 -90.0000000000
(1 row) (1 row)
select longitude(ll_to_earth(-90,-90))::numeric(20,10); SELECT longitude(ll_to_earth(-90,-90))::numeric(20,10);
longitude longitude
---------------- ----------------
-90.0000000000 -90.0000000000
@ -480,73 +480,73 @@ select longitude(ll_to_earth(-90,-90))::numeric(20,10);
-- --
-- Test getting the distance between two points using earth_distance. -- Test getting the distance between two points using earth_distance.
-- --
select earth_distance(ll_to_earth(0,0),ll_to_earth(0,0))::numeric(20,5); SELECT earth_distance(ll_to_earth(0,0),ll_to_earth(0,0))::numeric(20,5);
earth_distance earth_distance
---------------- ----------------
0.00000 0.00000
(1 row) (1 row)
select earth_distance(ll_to_earth(0,0),ll_to_earth(0,180))::numeric(20,5); SELECT earth_distance(ll_to_earth(0,0),ll_to_earth(0,180))::numeric(20,5);
earth_distance earth_distance
---------------- ----------------
20037605.73216 20037605.73216
(1 row) (1 row)
select earth_distance(ll_to_earth(0,0),ll_to_earth(90,0))::numeric(20,5); SELECT earth_distance(ll_to_earth(0,0),ll_to_earth(90,0))::numeric(20,5);
earth_distance earth_distance
---------------- ----------------
10018802.86608 10018802.86608
(1 row) (1 row)
select earth_distance(ll_to_earth(0,0),ll_to_earth(0,90))::numeric(20,5); SELECT earth_distance(ll_to_earth(0,0),ll_to_earth(0,90))::numeric(20,5);
earth_distance earth_distance
---------------- ----------------
10018802.86608 10018802.86608
(1 row) (1 row)
select earth_distance(ll_to_earth(0,0),ll_to_earth(0,1))::numeric(20,5); SELECT earth_distance(ll_to_earth(0,0),ll_to_earth(0,1))::numeric(20,5);
earth_distance earth_distance
---------------- ----------------
111320.03185 111320.03185
(1 row) (1 row)
select earth_distance(ll_to_earth(0,0),ll_to_earth(1,0))::numeric(20,5); SELECT earth_distance(ll_to_earth(0,0),ll_to_earth(1,0))::numeric(20,5);
earth_distance earth_distance
---------------- ----------------
111320.03185 111320.03185
(1 row) (1 row)
select earth_distance(ll_to_earth(30,0),ll_to_earth(30,1))::numeric(20,5); SELECT earth_distance(ll_to_earth(30,0),ll_to_earth(30,1))::numeric(20,5);
earth_distance earth_distance
---------------- ----------------
96405.66962 96405.66962
(1 row) (1 row)
select earth_distance(ll_to_earth(30,0),ll_to_earth(31,0))::numeric(20,5); SELECT earth_distance(ll_to_earth(30,0),ll_to_earth(31,0))::numeric(20,5);
earth_distance earth_distance
---------------- ----------------
111320.03185 111320.03185
(1 row) (1 row)
select earth_distance(ll_to_earth(60,0),ll_to_earth(60,1))::numeric(20,5); SELECT earth_distance(ll_to_earth(60,0),ll_to_earth(60,1))::numeric(20,5);
earth_distance earth_distance
---------------- ----------------
55659.48608 55659.48608
(1 row) (1 row)
select earth_distance(ll_to_earth(60,0),ll_to_earth(61,0))::numeric(20,5); SELECT earth_distance(ll_to_earth(60,0),ll_to_earth(61,0))::numeric(20,5);
earth_distance earth_distance
---------------- ----------------
111320.03185 111320.03185
(1 row) (1 row)
select earth_distance(ll_to_earth(41.8,87.6),ll_to_earth(35.1,106.7))::numeric(20,5); SELECT earth_distance(ll_to_earth(41.8,87.6),ll_to_earth(35.1,106.7))::numeric(20,5);
earth_distance earth_distance
---------------- ----------------
1819303.21265 1819303.21265
(1 row) (1 row)
select (earth_distance(ll_to_earth(41.8,87.6),ll_to_earth(35.1,106.7))* SELECT (earth_distance(ll_to_earth(41.8,87.6),ll_to_earth(35.1,106.7))*
100./2.54/12./5280.)::numeric(20,5); 100./2.54/12./5280.)::numeric(20,5);
numeric numeric
------------ ------------
@ -556,73 +556,73 @@ select (earth_distance(ll_to_earth(41.8,87.6),ll_to_earth(35.1,106.7))*
-- --
-- Test getting the distance between two points using geo_distance. -- Test getting the distance between two points using geo_distance.
-- --
select geo_distance('(0,0)'::point,'(0,0)'::point)::numeric(20,5); SELECT geo_distance('(0,0)'::point,'(0,0)'::point)::numeric(20,5);
geo_distance geo_distance
-------------- --------------
0.00000 0.00000
(1 row) (1 row)
select geo_distance('(0,0)'::point,'(180,0)'::point)::numeric(20,5); SELECT geo_distance('(0,0)'::point,'(180,0)'::point)::numeric(20,5);
geo_distance geo_distance
-------------- --------------
12436.77274 12436.77274
(1 row) (1 row)
select geo_distance('(0,0)'::point,'(0,90)'::point)::numeric(20,5); SELECT geo_distance('(0,0)'::point,'(0,90)'::point)::numeric(20,5);
geo_distance geo_distance
-------------- --------------
6218.38637 6218.38637
(1 row) (1 row)
select geo_distance('(0,0)'::point,'(90,0)'::point)::numeric(20,5); SELECT geo_distance('(0,0)'::point,'(90,0)'::point)::numeric(20,5);
geo_distance geo_distance
-------------- --------------
6218.38637 6218.38637
(1 row) (1 row)
select geo_distance('(0,0)'::point,'(1,0)'::point)::numeric(20,5); SELECT geo_distance('(0,0)'::point,'(1,0)'::point)::numeric(20,5);
geo_distance geo_distance
-------------- --------------
69.09318 69.09318
(1 row) (1 row)
select geo_distance('(0,0)'::point,'(0,1)'::point)::numeric(20,5); SELECT geo_distance('(0,0)'::point,'(0,1)'::point)::numeric(20,5);
geo_distance geo_distance
-------------- --------------
69.09318 69.09318
(1 row) (1 row)
select geo_distance('(0,30)'::point,'(1,30)'::point)::numeric(20,5); SELECT geo_distance('(0,30)'::point,'(1,30)'::point)::numeric(20,5);
geo_distance geo_distance
-------------- --------------
59.83626 59.83626
(1 row) (1 row)
select geo_distance('(0,30)'::point,'(0,31)'::point)::numeric(20,5); SELECT geo_distance('(0,30)'::point,'(0,31)'::point)::numeric(20,5);
geo_distance geo_distance
-------------- --------------
69.09318 69.09318
(1 row) (1 row)
select geo_distance('(0,60)'::point,'(1,60)'::point)::numeric(20,5); SELECT geo_distance('(0,60)'::point,'(1,60)'::point)::numeric(20,5);
geo_distance geo_distance
-------------- --------------
34.54626 34.54626
(1 row) (1 row)
select geo_distance('(0,60)'::point,'(0,61)'::point)::numeric(20,5); SELECT geo_distance('(0,60)'::point,'(0,61)'::point)::numeric(20,5);
geo_distance geo_distance
-------------- --------------
69.09318 69.09318
(1 row) (1 row)
select geo_distance('(87.6,41.8)'::point,'(106.7,35.1)'::point)::numeric(20,5); SELECT geo_distance('(87.6,41.8)'::point,'(106.7,35.1)'::point)::numeric(20,5);
geo_distance geo_distance
-------------- --------------
1129.18983 1129.18983
(1 row) (1 row)
select (geo_distance('(87.6,41.8)'::point,'(106.7,35.1)'::point)*5280.*12.*2.54/100.)::numeric(20,5); SELECT (geo_distance('(87.6,41.8)'::point,'(106.7,35.1)'::point)*5280.*12.*2.54/100.)::numeric(20,5);
numeric numeric
--------------- ---------------
1817254.87730 1817254.87730
@ -631,73 +631,73 @@ select (geo_distance('(87.6,41.8)'::point,'(106.7,35.1)'::point)*5280.*12.*2.54/
-- --
-- Test getting the distance between two points using the <@> operator. -- Test getting the distance between two points using the <@> operator.
-- --
select ('(0,0)'::point <@> '(0,0)'::point)::numeric(20,5); SELECT ('(0,0)'::point <@> '(0,0)'::point)::numeric(20,5);
numeric numeric
--------- ---------
0.00000 0.00000
(1 row) (1 row)
select ('(0,0)'::point <@> '(180,0)'::point)::numeric(20,5); SELECT ('(0,0)'::point <@> '(180,0)'::point)::numeric(20,5);
numeric numeric
------------- -------------
12436.77274 12436.77274
(1 row) (1 row)
select ('(0,0)'::point <@> '(0,90)'::point)::numeric(20,5); SELECT ('(0,0)'::point <@> '(0,90)'::point)::numeric(20,5);
numeric numeric
------------ ------------
6218.38637 6218.38637
(1 row) (1 row)
select ('(0,0)'::point <@> '(90,0)'::point)::numeric(20,5); SELECT ('(0,0)'::point <@> '(90,0)'::point)::numeric(20,5);
numeric numeric
------------ ------------
6218.38637 6218.38637
(1 row) (1 row)
select ('(0,0)'::point <@> '(1,0)'::point)::numeric(20,5); SELECT ('(0,0)'::point <@> '(1,0)'::point)::numeric(20,5);
numeric numeric
---------- ----------
69.09318 69.09318
(1 row) (1 row)
select ('(0,0)'::point <@> '(0,1)'::point)::numeric(20,5); SELECT ('(0,0)'::point <@> '(0,1)'::point)::numeric(20,5);
numeric numeric
---------- ----------
69.09318 69.09318
(1 row) (1 row)
select ('(0,30)'::point <@> '(1,30)'::point)::numeric(20,5); SELECT ('(0,30)'::point <@> '(1,30)'::point)::numeric(20,5);
numeric numeric
---------- ----------
59.83626 59.83626
(1 row) (1 row)
select ('(0,30)'::point <@> '(0,31)'::point)::numeric(20,5); SELECT ('(0,30)'::point <@> '(0,31)'::point)::numeric(20,5);
numeric numeric
---------- ----------
69.09318 69.09318
(1 row) (1 row)
select ('(0,60)'::point <@> '(1,60)'::point)::numeric(20,5); SELECT ('(0,60)'::point <@> '(1,60)'::point)::numeric(20,5);
numeric numeric
---------- ----------
34.54626 34.54626
(1 row) (1 row)
select ('(0,60)'::point <@> '(0,61)'::point)::numeric(20,5); SELECT ('(0,60)'::point <@> '(0,61)'::point)::numeric(20,5);
numeric numeric
---------- ----------
69.09318 69.09318
(1 row) (1 row)
select ('(87.6,41.8)'::point <@> '(106.7,35.1)'::point)::numeric(20,5); SELECT ('(87.6,41.8)'::point <@> '(106.7,35.1)'::point)::numeric(20,5);
numeric numeric
------------ ------------
1129.18983 1129.18983
(1 row) (1 row)
select (('(87.6,41.8)'::point <@> '(106.7,35.1)'::point)*5280.*12.*2.54/100.)::numeric(20,5); SELECT (('(87.6,41.8)'::point <@> '(106.7,35.1)'::point)*5280.*12.*2.54/100.)::numeric(20,5);
numeric numeric
--------------- ---------------
1817254.87730 1817254.87730
@ -706,7 +706,7 @@ select (('(87.6,41.8)'::point <@> '(106.7,35.1)'::point)*5280.*12.*2.54/100.)::n
-- --
-- Test getting a bounding box around points. -- Test getting a bounding box around points.
-- --
select cube_ll_coord(earth_box(ll_to_earth(0,0),112000),1)::numeric(20,5), SELECT cube_ll_coord(earth_box(ll_to_earth(0,0),112000),1)::numeric(20,5),
cube_ll_coord(earth_box(ll_to_earth(0,0),112000),2)::numeric(20,5), cube_ll_coord(earth_box(ll_to_earth(0,0),112000),2)::numeric(20,5),
cube_ll_coord(earth_box(ll_to_earth(0,0),112000),3)::numeric(20,5), cube_ll_coord(earth_box(ll_to_earth(0,0),112000),3)::numeric(20,5),
cube_ur_coord(earth_box(ll_to_earth(0,0),112000),1)::numeric(20,5), cube_ur_coord(earth_box(ll_to_earth(0,0),112000),1)::numeric(20,5),
@ -717,7 +717,7 @@ select cube_ll_coord(earth_box(ll_to_earth(0,0),112000),1)::numeric(20,5),
6266169.43896 | -111998.56104 | -111998.56104 | 6490166.56104 | 111998.56104 | 111998.56104 6266169.43896 | -111998.56104 | -111998.56104 | 6490166.56104 | 111998.56104 | 111998.56104
(1 row) (1 row)
select cube_ll_coord(earth_box(ll_to_earth(0,0),pi()*earth()),1)::numeric(20,5), SELECT cube_ll_coord(earth_box(ll_to_earth(0,0),pi()*earth()),1)::numeric(20,5),
cube_ll_coord(earth_box(ll_to_earth(0,0),pi()*earth()),2)::numeric(20,5), cube_ll_coord(earth_box(ll_to_earth(0,0),pi()*earth()),2)::numeric(20,5),
cube_ll_coord(earth_box(ll_to_earth(0,0),pi()*earth()),3)::numeric(20,5), cube_ll_coord(earth_box(ll_to_earth(0,0),pi()*earth()),3)::numeric(20,5),
cube_ur_coord(earth_box(ll_to_earth(0,0),pi()*earth()),1)::numeric(20,5), cube_ur_coord(earth_box(ll_to_earth(0,0),pi()*earth()),1)::numeric(20,5),
@ -728,7 +728,7 @@ select cube_ll_coord(earth_box(ll_to_earth(0,0),pi()*earth()),1)::numeric(20,5),
-6378168.00000 | -12756336.00000 | -12756336.00000 | 19134504.00000 | 12756336.00000 | 12756336.00000 -6378168.00000 | -12756336.00000 | -12756336.00000 | 19134504.00000 | 12756336.00000 | 12756336.00000
(1 row) (1 row)
select cube_ll_coord(earth_box(ll_to_earth(0,0),10*earth()),1)::numeric(20,5), SELECT cube_ll_coord(earth_box(ll_to_earth(0,0),10*earth()),1)::numeric(20,5),
cube_ll_coord(earth_box(ll_to_earth(0,0),10*earth()),2)::numeric(20,5), cube_ll_coord(earth_box(ll_to_earth(0,0),10*earth()),2)::numeric(20,5),
cube_ll_coord(earth_box(ll_to_earth(0,0),10*earth()),3)::numeric(20,5), cube_ll_coord(earth_box(ll_to_earth(0,0),10*earth()),3)::numeric(20,5),
cube_ur_coord(earth_box(ll_to_earth(0,0),10*earth()),1)::numeric(20,5), cube_ur_coord(earth_box(ll_to_earth(0,0),10*earth()),1)::numeric(20,5),
@ -742,7 +742,7 @@ select cube_ll_coord(earth_box(ll_to_earth(0,0),10*earth()),1)::numeric(20,5),
-- --
-- Test for points that should be in bounding boxes. -- Test for points that should be in bounding boxes.
-- --
select earth_box(ll_to_earth(0,0), SELECT earth_box(ll_to_earth(0,0),
earth_distance(ll_to_earth(0,0),ll_to_earth(0,1))*1.00001) @ earth_distance(ll_to_earth(0,0),ll_to_earth(0,1))*1.00001) @
ll_to_earth(0,1); ll_to_earth(0,1);
?column? ?column?
@ -750,7 +750,7 @@ select earth_box(ll_to_earth(0,0),
t t
(1 row) (1 row)
select earth_box(ll_to_earth(0,0), SELECT earth_box(ll_to_earth(0,0),
earth_distance(ll_to_earth(0,0),ll_to_earth(0,0.1))*1.00001) @ earth_distance(ll_to_earth(0,0),ll_to_earth(0,0.1))*1.00001) @
ll_to_earth(0,0.1); ll_to_earth(0,0.1);
?column? ?column?
@ -758,7 +758,7 @@ select earth_box(ll_to_earth(0,0),
t t
(1 row) (1 row)
select earth_box(ll_to_earth(0,0), SELECT earth_box(ll_to_earth(0,0),
earth_distance(ll_to_earth(0,0),ll_to_earth(0,0.01))*1.00001) @ earth_distance(ll_to_earth(0,0),ll_to_earth(0,0.01))*1.00001) @
ll_to_earth(0,0.01); ll_to_earth(0,0.01);
?column? ?column?
@ -766,7 +766,7 @@ select earth_box(ll_to_earth(0,0),
t t
(1 row) (1 row)
select earth_box(ll_to_earth(0,0), SELECT earth_box(ll_to_earth(0,0),
earth_distance(ll_to_earth(0,0),ll_to_earth(0,0.001))*1.00001) @ earth_distance(ll_to_earth(0,0),ll_to_earth(0,0.001))*1.00001) @
ll_to_earth(0,0.001); ll_to_earth(0,0.001);
?column? ?column?
@ -774,7 +774,7 @@ select earth_box(ll_to_earth(0,0),
t t
(1 row) (1 row)
select earth_box(ll_to_earth(0,0), SELECT earth_box(ll_to_earth(0,0),
earth_distance(ll_to_earth(0,0),ll_to_earth(0,0.0001))*1.00001) @ earth_distance(ll_to_earth(0,0),ll_to_earth(0,0.0001))*1.00001) @
ll_to_earth(0,0.0001); ll_to_earth(0,0.0001);
?column? ?column?
@ -782,7 +782,7 @@ select earth_box(ll_to_earth(0,0),
t t
(1 row) (1 row)
select earth_box(ll_to_earth(0,0), SELECT earth_box(ll_to_earth(0,0),
earth_distance(ll_to_earth(0,0),ll_to_earth(0.0001,0.0001))*1.00001) @ earth_distance(ll_to_earth(0,0),ll_to_earth(0.0001,0.0001))*1.00001) @
ll_to_earth(0.0001,0.0001); ll_to_earth(0.0001,0.0001);
?column? ?column?
@ -790,7 +790,7 @@ select earth_box(ll_to_earth(0,0),
t t
(1 row) (1 row)
select earth_box(ll_to_earth(45,45), SELECT earth_box(ll_to_earth(45,45),
earth_distance(ll_to_earth(45,45),ll_to_earth(45.0001,45.0001))*1.00001) @ earth_distance(ll_to_earth(45,45),ll_to_earth(45.0001,45.0001))*1.00001) @
ll_to_earth(45.0001,45.0001); ll_to_earth(45.0001,45.0001);
?column? ?column?
@ -798,7 +798,7 @@ select earth_box(ll_to_earth(45,45),
t t
(1 row) (1 row)
select earth_box(ll_to_earth(90,180), SELECT earth_box(ll_to_earth(90,180),
earth_distance(ll_to_earth(90,180),ll_to_earth(90.0001,180.0001))*1.00001) @ earth_distance(ll_to_earth(90,180),ll_to_earth(90.0001,180.0001))*1.00001) @
ll_to_earth(90.0001,180.0001); ll_to_earth(90.0001,180.0001);
?column? ?column?
@ -811,7 +811,7 @@ select earth_box(ll_to_earth(90,180),
-- to make points way outside, since some points close may be in the box -- to make points way outside, since some points close may be in the box
-- but further away than the distance we are testing. -- but further away than the distance we are testing.
-- --
select earth_box(ll_to_earth(0,0), SELECT earth_box(ll_to_earth(0,0),
earth_distance(ll_to_earth(0,0),ll_to_earth(0,1))*.57735) @ earth_distance(ll_to_earth(0,0),ll_to_earth(0,1))*.57735) @
ll_to_earth(0,1); ll_to_earth(0,1);
?column? ?column?
@ -819,7 +819,7 @@ select earth_box(ll_to_earth(0,0),
f f
(1 row) (1 row)
select earth_box(ll_to_earth(0,0), SELECT earth_box(ll_to_earth(0,0),
earth_distance(ll_to_earth(0,0),ll_to_earth(0,0.1))*.57735) @ earth_distance(ll_to_earth(0,0),ll_to_earth(0,0.1))*.57735) @
ll_to_earth(0,0.1); ll_to_earth(0,0.1);
?column? ?column?
@ -827,7 +827,7 @@ select earth_box(ll_to_earth(0,0),
f f
(1 row) (1 row)
select earth_box(ll_to_earth(0,0), SELECT earth_box(ll_to_earth(0,0),
earth_distance(ll_to_earth(0,0),ll_to_earth(0,0.01))*.57735) @ earth_distance(ll_to_earth(0,0),ll_to_earth(0,0.01))*.57735) @
ll_to_earth(0,0.01); ll_to_earth(0,0.01);
?column? ?column?
@ -835,7 +835,7 @@ select earth_box(ll_to_earth(0,0),
f f
(1 row) (1 row)
select earth_box(ll_to_earth(0,0), SELECT earth_box(ll_to_earth(0,0),
earth_distance(ll_to_earth(0,0),ll_to_earth(0,0.001))*.57735) @ earth_distance(ll_to_earth(0,0),ll_to_earth(0,0.001))*.57735) @
ll_to_earth(0,0.001); ll_to_earth(0,0.001);
?column? ?column?
@ -843,7 +843,7 @@ select earth_box(ll_to_earth(0,0),
f f
(1 row) (1 row)
select earth_box(ll_to_earth(0,0), SELECT earth_box(ll_to_earth(0,0),
earth_distance(ll_to_earth(0,0),ll_to_earth(0,0.0001))*.57735) @ earth_distance(ll_to_earth(0,0),ll_to_earth(0,0.0001))*.57735) @
ll_to_earth(0,0.0001); ll_to_earth(0,0.0001);
?column? ?column?
@ -851,7 +851,7 @@ select earth_box(ll_to_earth(0,0),
f f
(1 row) (1 row)
select earth_box(ll_to_earth(0,0), SELECT earth_box(ll_to_earth(0,0),
earth_distance(ll_to_earth(0,0),ll_to_earth(0.0001,0.0001))*.57735) @ earth_distance(ll_to_earth(0,0),ll_to_earth(0.0001,0.0001))*.57735) @
ll_to_earth(0.0001,0.0001); ll_to_earth(0.0001,0.0001);
?column? ?column?
@ -859,7 +859,7 @@ select earth_box(ll_to_earth(0,0),
f f
(1 row) (1 row)
select earth_box(ll_to_earth(45,45), SELECT earth_box(ll_to_earth(45,45),
earth_distance(ll_to_earth(45,45),ll_to_earth(45.0001,45.0001))*.57735) @ earth_distance(ll_to_earth(45,45),ll_to_earth(45.0001,45.0001))*.57735) @
ll_to_earth(45.0001,45.0001); ll_to_earth(45.0001,45.0001);
?column? ?column?
@ -867,7 +867,7 @@ select earth_box(ll_to_earth(45,45),
f f
(1 row) (1 row)
select earth_box(ll_to_earth(90,180), SELECT earth_box(ll_to_earth(90,180),
earth_distance(ll_to_earth(90,180),ll_to_earth(90.0001,180.0001))*.57735) @ earth_distance(ll_to_earth(90,180),ll_to_earth(90.0001,180.0001))*.57735) @
ll_to_earth(90.0001,180.0001); ll_to_earth(90.0001,180.0001);
?column? ?column?
@ -878,68 +878,68 @@ select earth_box(ll_to_earth(90,180),
-- --
-- Test the recommended constraints. -- Test the recommended constraints.
-- --
select is_point(ll_to_earth(0,0)); SELECT is_point(ll_to_earth(0,0));
ERROR: Function is_point(earth) does not exist ERROR: Function is_point(earth) does not exist
Unable to identify a function that satisfies the given argument types Unable to identify a function that satisfies the given argument types
You may need to add explicit typecasts You may need to add explicit typecasts
select cube_dim(ll_to_earth(0,0)) <= 3; SELECT cube_dim(ll_to_earth(0,0)) <= 3;
?column? ?column?
---------- ----------
t t
(1 row) (1 row)
select abs(cube_distance(ll_to_earth(0,0), '(0)'::cube) / earth() - 1) < SELECT abs(cube_distance(ll_to_earth(0,0), '(0)'::cube) / earth() - 1) <
'10e-12'::float8; '10e-12'::float8;
?column? ?column?
---------- ----------
t t
(1 row) (1 row)
select is_point(ll_to_earth(30,60)); SELECT is_point(ll_to_earth(30,60));
ERROR: Function is_point(earth) does not exist ERROR: Function is_point(earth) does not exist
Unable to identify a function that satisfies the given argument types Unable to identify a function that satisfies the given argument types
You may need to add explicit typecasts You may need to add explicit typecasts
select cube_dim(ll_to_earth(30,60)) <= 3; SELECT cube_dim(ll_to_earth(30,60)) <= 3;
?column? ?column?
---------- ----------
t t
(1 row) (1 row)
select abs(cube_distance(ll_to_earth(30,60), '(0)'::cube) / earth() - 1) < SELECT abs(cube_distance(ll_to_earth(30,60), '(0)'::cube) / earth() - 1) <
'10e-12'::float8; '10e-12'::float8;
?column? ?column?
---------- ----------
t t
(1 row) (1 row)
select is_point(ll_to_earth(60,90)); SELECT is_point(ll_to_earth(60,90));
ERROR: Function is_point(earth) does not exist ERROR: Function is_point(earth) does not exist
Unable to identify a function that satisfies the given argument types Unable to identify a function that satisfies the given argument types
You may need to add explicit typecasts You may need to add explicit typecasts
select cube_dim(ll_to_earth(60,90)) <= 3; SELECT cube_dim(ll_to_earth(60,90)) <= 3;
?column? ?column?
---------- ----------
t t
(1 row) (1 row)
select abs(cube_distance(ll_to_earth(60,90), '(0)'::cube) / earth() - 1) < SELECT abs(cube_distance(ll_to_earth(60,90), '(0)'::cube) / earth() - 1) <
'10e-12'::float8; '10e-12'::float8;
?column? ?column?
---------- ----------
t t
(1 row) (1 row)
select is_point(ll_to_earth(-30,-90)); SELECT is_point(ll_to_earth(-30,-90));
ERROR: Function is_point(earth) does not exist ERROR: Function is_point(earth) does not exist
Unable to identify a function that satisfies the given argument types Unable to identify a function that satisfies the given argument types
You may need to add explicit typecasts You may need to add explicit typecasts
select cube_dim(ll_to_earth(-30,-90)) <= 3; SELECT cube_dim(ll_to_earth(-30,-90)) <= 3;
?column? ?column?
---------- ----------
t t
(1 row) (1 row)
select abs(cube_distance(ll_to_earth(-30,-90), '(0)'::cube) / earth() - 1) < SELECT abs(cube_distance(ll_to_earth(-30,-90), '(0)'::cube) / earth() - 1) <
'10e-12'::float8; '10e-12'::float8;
?column? ?column?
---------- ----------

View File

@ -15,71 +15,71 @@
-- The radius of the Earth we are using. -- The radius of the Earth we are using.
-- --
select earth()::numeric(20,5); SELECT earth()::numeric(20,5);
-- --
-- Convert straight line distances to great circle distances. -- Convert straight line distances to great circle distances.
-- --
select (pi()*earth())::numeric(20,5); SELECT (pi()*earth())::numeric(20,5);
select sec_to_gc(0)::numeric(20,5); SELECT sec_to_gc(0)::numeric(20,5);
select sec_to_gc(2*earth())::numeric(20,5); SELECT sec_to_gc(2*earth())::numeric(20,5);
select sec_to_gc(10*earth())::numeric(20,5); SELECT sec_to_gc(10*earth())::numeric(20,5);
select sec_to_gc(-earth())::numeric(20,5); SELECT sec_to_gc(-earth())::numeric(20,5);
select sec_to_gc(1000)::numeric(20,5); SELECT sec_to_gc(1000)::numeric(20,5);
select sec_to_gc(10000)::numeric(20,5); SELECT sec_to_gc(10000)::numeric(20,5);
select sec_to_gc(100000)::numeric(20,5); SELECT sec_to_gc(100000)::numeric(20,5);
select sec_to_gc(1000000)::numeric(20,5); SELECT sec_to_gc(1000000)::numeric(20,5);
-- --
-- Convert great circle distances to straight line distances. -- Convert great circle distances to straight line distances.
-- --
select gc_to_sec(0)::numeric(20,5); SELECT gc_to_sec(0)::numeric(20,5);
select gc_to_sec(sec_to_gc(2*earth()))::numeric(20,5); SELECT gc_to_sec(sec_to_gc(2*earth()))::numeric(20,5);
select gc_to_sec(10*earth())::numeric(20,5); SELECT gc_to_sec(10*earth())::numeric(20,5);
select gc_to_sec(pi()*earth())::numeric(20,5); SELECT gc_to_sec(pi()*earth())::numeric(20,5);
select gc_to_sec(-1000)::numeric(20,5); SELECT gc_to_sec(-1000)::numeric(20,5);
select gc_to_sec(1000)::numeric(20,5); SELECT gc_to_sec(1000)::numeric(20,5);
select gc_to_sec(10000)::numeric(20,5); SELECT gc_to_sec(10000)::numeric(20,5);
select gc_to_sec(100000)::numeric(20,5); SELECT gc_to_sec(100000)::numeric(20,5);
select gc_to_sec(1000000)::numeric(20,5); SELECT gc_to_sec(1000000)::numeric(20,5);
-- --
-- Set coordinates using latitude and longitude. -- Set coordinates using latitude and longitude.
-- Extract each coordinate separately so we can round them. -- Extract each coordinate separately so we can round them.
-- --
select cube_ll_coord(ll_to_earth(0,0),1)::numeric(20,5), SELECT cube_ll_coord(ll_to_earth(0,0),1)::numeric(20,5),
cube_ll_coord(ll_to_earth(0,0),2)::numeric(20,5), cube_ll_coord(ll_to_earth(0,0),2)::numeric(20,5),
cube_ll_coord(ll_to_earth(0,0),3)::numeric(20,5); cube_ll_coord(ll_to_earth(0,0),3)::numeric(20,5);
select cube_ll_coord(ll_to_earth(360,360),1)::numeric(20,5), SELECT cube_ll_coord(ll_to_earth(360,360),1)::numeric(20,5),
cube_ll_coord(ll_to_earth(360,360),2)::numeric(20,5), cube_ll_coord(ll_to_earth(360,360),2)::numeric(20,5),
cube_ll_coord(ll_to_earth(360,360),3)::numeric(20,5); cube_ll_coord(ll_to_earth(360,360),3)::numeric(20,5);
select cube_ll_coord(ll_to_earth(180,180),1)::numeric(20,5), SELECT cube_ll_coord(ll_to_earth(180,180),1)::numeric(20,5),
cube_ll_coord(ll_to_earth(180,180),2)::numeric(20,5), cube_ll_coord(ll_to_earth(180,180),2)::numeric(20,5),
cube_ll_coord(ll_to_earth(180,180),3)::numeric(20,5); cube_ll_coord(ll_to_earth(180,180),3)::numeric(20,5);
select cube_ll_coord(ll_to_earth(180,360),1)::numeric(20,5), SELECT cube_ll_coord(ll_to_earth(180,360),1)::numeric(20,5),
cube_ll_coord(ll_to_earth(180,360),2)::numeric(20,5), cube_ll_coord(ll_to_earth(180,360),2)::numeric(20,5),
cube_ll_coord(ll_to_earth(180,360),3)::numeric(20,5); cube_ll_coord(ll_to_earth(180,360),3)::numeric(20,5);
select cube_ll_coord(ll_to_earth(-180,-360),1)::numeric(20,5), SELECT cube_ll_coord(ll_to_earth(-180,-360),1)::numeric(20,5),
cube_ll_coord(ll_to_earth(-180,-360),2)::numeric(20,5), cube_ll_coord(ll_to_earth(-180,-360),2)::numeric(20,5),
cube_ll_coord(ll_to_earth(-180,-360),3)::numeric(20,5); cube_ll_coord(ll_to_earth(-180,-360),3)::numeric(20,5);
select cube_ll_coord(ll_to_earth(0,180),1)::numeric(20,5), SELECT cube_ll_coord(ll_to_earth(0,180),1)::numeric(20,5),
cube_ll_coord(ll_to_earth(0,180),2)::numeric(20,5), cube_ll_coord(ll_to_earth(0,180),2)::numeric(20,5),
cube_ll_coord(ll_to_earth(0,180),3)::numeric(20,5); cube_ll_coord(ll_to_earth(0,180),3)::numeric(20,5);
select cube_ll_coord(ll_to_earth(0,-180),1)::numeric(20,5), SELECT cube_ll_coord(ll_to_earth(0,-180),1)::numeric(20,5),
cube_ll_coord(ll_to_earth(0,-180),2)::numeric(20,5), cube_ll_coord(ll_to_earth(0,-180),2)::numeric(20,5),
cube_ll_coord(ll_to_earth(0,-180),3)::numeric(20,5); cube_ll_coord(ll_to_earth(0,-180),3)::numeric(20,5);
select cube_ll_coord(ll_to_earth(90,0),1)::numeric(20,5), SELECT cube_ll_coord(ll_to_earth(90,0),1)::numeric(20,5),
cube_ll_coord(ll_to_earth(90,0),2)::numeric(20,5), cube_ll_coord(ll_to_earth(90,0),2)::numeric(20,5),
cube_ll_coord(ll_to_earth(90,0),3)::numeric(20,5); cube_ll_coord(ll_to_earth(90,0),3)::numeric(20,5);
select cube_ll_coord(ll_to_earth(90,180),1)::numeric(20,5), SELECT cube_ll_coord(ll_to_earth(90,180),1)::numeric(20,5),
cube_ll_coord(ll_to_earth(90,180),2)::numeric(20,5), cube_ll_coord(ll_to_earth(90,180),2)::numeric(20,5),
cube_ll_coord(ll_to_earth(90,180),3)::numeric(20,5); cube_ll_coord(ll_to_earth(90,180),3)::numeric(20,5);
select cube_ll_coord(ll_to_earth(-90,0),1)::numeric(20,5), SELECT cube_ll_coord(ll_to_earth(-90,0),1)::numeric(20,5),
cube_ll_coord(ll_to_earth(-90,0),2)::numeric(20,5), cube_ll_coord(ll_to_earth(-90,0),2)::numeric(20,5),
cube_ll_coord(ll_to_earth(-90,0),3)::numeric(20,5); cube_ll_coord(ll_to_earth(-90,0),3)::numeric(20,5);
select cube_ll_coord(ll_to_earth(-90,180),1)::numeric(20,5), SELECT cube_ll_coord(ll_to_earth(-90,180),1)::numeric(20,5),
cube_ll_coord(ll_to_earth(-90,180),2)::numeric(20,5), cube_ll_coord(ll_to_earth(-90,180),2)::numeric(20,5),
cube_ll_coord(ll_to_earth(-90,180),3)::numeric(20,5); cube_ll_coord(ll_to_earth(-90,180),3)::numeric(20,5);
@ -87,51 +87,51 @@ select cube_ll_coord(ll_to_earth(-90,180),1)::numeric(20,5),
-- Test getting the latitude of a location. -- Test getting the latitude of a location.
-- --
select latitude(ll_to_earth(0,0))::numeric(20,10); SELECT latitude(ll_to_earth(0,0))::numeric(20,10);
select latitude(ll_to_earth(45,0))::numeric(20,10); SELECT latitude(ll_to_earth(45,0))::numeric(20,10);
select latitude(ll_to_earth(90,0))::numeric(20,10); SELECT latitude(ll_to_earth(90,0))::numeric(20,10);
select latitude(ll_to_earth(-45,0))::numeric(20,10); SELECT latitude(ll_to_earth(-45,0))::numeric(20,10);
select latitude(ll_to_earth(-90,0))::numeric(20,10); SELECT latitude(ll_to_earth(-90,0))::numeric(20,10);
select latitude(ll_to_earth(0,90))::numeric(20,10); SELECT latitude(ll_to_earth(0,90))::numeric(20,10);
select latitude(ll_to_earth(45,90))::numeric(20,10); SELECT latitude(ll_to_earth(45,90))::numeric(20,10);
select latitude(ll_to_earth(90,90))::numeric(20,10); SELECT latitude(ll_to_earth(90,90))::numeric(20,10);
select latitude(ll_to_earth(-45,90))::numeric(20,10); SELECT latitude(ll_to_earth(-45,90))::numeric(20,10);
select latitude(ll_to_earth(-90,90))::numeric(20,10); SELECT latitude(ll_to_earth(-90,90))::numeric(20,10);
select latitude(ll_to_earth(0,180))::numeric(20,10); SELECT latitude(ll_to_earth(0,180))::numeric(20,10);
select latitude(ll_to_earth(45,180))::numeric(20,10); SELECT latitude(ll_to_earth(45,180))::numeric(20,10);
select latitude(ll_to_earth(90,180))::numeric(20,10); SELECT latitude(ll_to_earth(90,180))::numeric(20,10);
select latitude(ll_to_earth(-45,180))::numeric(20,10); SELECT latitude(ll_to_earth(-45,180))::numeric(20,10);
select latitude(ll_to_earth(-90,180))::numeric(20,10); SELECT latitude(ll_to_earth(-90,180))::numeric(20,10);
select latitude(ll_to_earth(0,-90))::numeric(20,10); SELECT latitude(ll_to_earth(0,-90))::numeric(20,10);
select latitude(ll_to_earth(45,-90))::numeric(20,10); SELECT latitude(ll_to_earth(45,-90))::numeric(20,10);
select latitude(ll_to_earth(90,-90))::numeric(20,10); SELECT latitude(ll_to_earth(90,-90))::numeric(20,10);
select latitude(ll_to_earth(-45,-90))::numeric(20,10); SELECT latitude(ll_to_earth(-45,-90))::numeric(20,10);
select latitude(ll_to_earth(-90,-90))::numeric(20,10); SELECT latitude(ll_to_earth(-90,-90))::numeric(20,10);
-- --
-- Test getting the longitude of a location. -- Test getting the longitude of a location.
-- --
select longitude(ll_to_earth(0,0))::numeric(20,10); SELECT longitude(ll_to_earth(0,0))::numeric(20,10);
select longitude(ll_to_earth(45,0))::numeric(20,10); SELECT longitude(ll_to_earth(45,0))::numeric(20,10);
select longitude(ll_to_earth(90,0))::numeric(20,10); SELECT longitude(ll_to_earth(90,0))::numeric(20,10);
select longitude(ll_to_earth(-45,0))::numeric(20,10); SELECT longitude(ll_to_earth(-45,0))::numeric(20,10);
select longitude(ll_to_earth(-90,0))::numeric(20,10); SELECT longitude(ll_to_earth(-90,0))::numeric(20,10);
select longitude(ll_to_earth(0,90))::numeric(20,10); SELECT longitude(ll_to_earth(0,90))::numeric(20,10);
select longitude(ll_to_earth(45,90))::numeric(20,10); SELECT longitude(ll_to_earth(45,90))::numeric(20,10);
select longitude(ll_to_earth(90,90))::numeric(20,10); SELECT longitude(ll_to_earth(90,90))::numeric(20,10);
select longitude(ll_to_earth(-45,90))::numeric(20,10); SELECT longitude(ll_to_earth(-45,90))::numeric(20,10);
select longitude(ll_to_earth(-90,90))::numeric(20,10); SELECT longitude(ll_to_earth(-90,90))::numeric(20,10);
select longitude(ll_to_earth(0,180))::numeric(20,10); SELECT longitude(ll_to_earth(0,180))::numeric(20,10);
select longitude(ll_to_earth(45,180))::numeric(20,10); SELECT longitude(ll_to_earth(45,180))::numeric(20,10);
select longitude(ll_to_earth(90,180))::numeric(20,10); SELECT longitude(ll_to_earth(90,180))::numeric(20,10);
select longitude(ll_to_earth(-45,180))::numeric(20,10); SELECT longitude(ll_to_earth(-45,180))::numeric(20,10);
select longitude(ll_to_earth(-90,180))::numeric(20,10); SELECT longitude(ll_to_earth(-90,180))::numeric(20,10);
select longitude(ll_to_earth(0,-90))::numeric(20,10); SELECT longitude(ll_to_earth(0,-90))::numeric(20,10);
select longitude(ll_to_earth(45,-90))::numeric(20,10); SELECT longitude(ll_to_earth(45,-90))::numeric(20,10);
select longitude(ll_to_earth(90,-90))::numeric(20,10); SELECT longitude(ll_to_earth(90,-90))::numeric(20,10);
select longitude(ll_to_earth(-45,-90))::numeric(20,10); SELECT longitude(ll_to_earth(-45,-90))::numeric(20,10);
select longitude(ll_to_earth(-90,-90))::numeric(20,10); SELECT longitude(ll_to_earth(-90,-90))::numeric(20,10);
-- --
-- For the distance tests the following is some real life data. -- For the distance tests the following is some real life data.
@ -146,71 +146,71 @@ select longitude(ll_to_earth(-90,-90))::numeric(20,10);
-- Test getting the distance between two points using earth_distance. -- Test getting the distance between two points using earth_distance.
-- --
select earth_distance(ll_to_earth(0,0),ll_to_earth(0,0))::numeric(20,5); SELECT earth_distance(ll_to_earth(0,0),ll_to_earth(0,0))::numeric(20,5);
select earth_distance(ll_to_earth(0,0),ll_to_earth(0,180))::numeric(20,5); SELECT earth_distance(ll_to_earth(0,0),ll_to_earth(0,180))::numeric(20,5);
select earth_distance(ll_to_earth(0,0),ll_to_earth(90,0))::numeric(20,5); SELECT earth_distance(ll_to_earth(0,0),ll_to_earth(90,0))::numeric(20,5);
select earth_distance(ll_to_earth(0,0),ll_to_earth(0,90))::numeric(20,5); SELECT earth_distance(ll_to_earth(0,0),ll_to_earth(0,90))::numeric(20,5);
select earth_distance(ll_to_earth(0,0),ll_to_earth(0,1))::numeric(20,5); SELECT earth_distance(ll_to_earth(0,0),ll_to_earth(0,1))::numeric(20,5);
select earth_distance(ll_to_earth(0,0),ll_to_earth(1,0))::numeric(20,5); SELECT earth_distance(ll_to_earth(0,0),ll_to_earth(1,0))::numeric(20,5);
select earth_distance(ll_to_earth(30,0),ll_to_earth(30,1))::numeric(20,5); SELECT earth_distance(ll_to_earth(30,0),ll_to_earth(30,1))::numeric(20,5);
select earth_distance(ll_to_earth(30,0),ll_to_earth(31,0))::numeric(20,5); SELECT earth_distance(ll_to_earth(30,0),ll_to_earth(31,0))::numeric(20,5);
select earth_distance(ll_to_earth(60,0),ll_to_earth(60,1))::numeric(20,5); SELECT earth_distance(ll_to_earth(60,0),ll_to_earth(60,1))::numeric(20,5);
select earth_distance(ll_to_earth(60,0),ll_to_earth(61,0))::numeric(20,5); SELECT earth_distance(ll_to_earth(60,0),ll_to_earth(61,0))::numeric(20,5);
select earth_distance(ll_to_earth(41.8,87.6),ll_to_earth(35.1,106.7))::numeric(20,5); SELECT earth_distance(ll_to_earth(41.8,87.6),ll_to_earth(35.1,106.7))::numeric(20,5);
select (earth_distance(ll_to_earth(41.8,87.6),ll_to_earth(35.1,106.7))* SELECT (earth_distance(ll_to_earth(41.8,87.6),ll_to_earth(35.1,106.7))*
100./2.54/12./5280.)::numeric(20,5); 100./2.54/12./5280.)::numeric(20,5);
-- --
-- Test getting the distance between two points using geo_distance. -- Test getting the distance between two points using geo_distance.
-- --
select geo_distance('(0,0)'::point,'(0,0)'::point)::numeric(20,5); SELECT geo_distance('(0,0)'::point,'(0,0)'::point)::numeric(20,5);
select geo_distance('(0,0)'::point,'(180,0)'::point)::numeric(20,5); SELECT geo_distance('(0,0)'::point,'(180,0)'::point)::numeric(20,5);
select geo_distance('(0,0)'::point,'(0,90)'::point)::numeric(20,5); SELECT geo_distance('(0,0)'::point,'(0,90)'::point)::numeric(20,5);
select geo_distance('(0,0)'::point,'(90,0)'::point)::numeric(20,5); SELECT geo_distance('(0,0)'::point,'(90,0)'::point)::numeric(20,5);
select geo_distance('(0,0)'::point,'(1,0)'::point)::numeric(20,5); SELECT geo_distance('(0,0)'::point,'(1,0)'::point)::numeric(20,5);
select geo_distance('(0,0)'::point,'(0,1)'::point)::numeric(20,5); SELECT geo_distance('(0,0)'::point,'(0,1)'::point)::numeric(20,5);
select geo_distance('(0,30)'::point,'(1,30)'::point)::numeric(20,5); SELECT geo_distance('(0,30)'::point,'(1,30)'::point)::numeric(20,5);
select geo_distance('(0,30)'::point,'(0,31)'::point)::numeric(20,5); SELECT geo_distance('(0,30)'::point,'(0,31)'::point)::numeric(20,5);
select geo_distance('(0,60)'::point,'(1,60)'::point)::numeric(20,5); SELECT geo_distance('(0,60)'::point,'(1,60)'::point)::numeric(20,5);
select geo_distance('(0,60)'::point,'(0,61)'::point)::numeric(20,5); SELECT geo_distance('(0,60)'::point,'(0,61)'::point)::numeric(20,5);
select geo_distance('(87.6,41.8)'::point,'(106.7,35.1)'::point)::numeric(20,5); SELECT geo_distance('(87.6,41.8)'::point,'(106.7,35.1)'::point)::numeric(20,5);
select (geo_distance('(87.6,41.8)'::point,'(106.7,35.1)'::point)*5280.*12.*2.54/100.)::numeric(20,5); SELECT (geo_distance('(87.6,41.8)'::point,'(106.7,35.1)'::point)*5280.*12.*2.54/100.)::numeric(20,5);
-- --
-- Test getting the distance between two points using the <@> operator. -- Test getting the distance between two points using the <@> operator.
-- --
select ('(0,0)'::point <@> '(0,0)'::point)::numeric(20,5); SELECT ('(0,0)'::point <@> '(0,0)'::point)::numeric(20,5);
select ('(0,0)'::point <@> '(180,0)'::point)::numeric(20,5); SELECT ('(0,0)'::point <@> '(180,0)'::point)::numeric(20,5);
select ('(0,0)'::point <@> '(0,90)'::point)::numeric(20,5); SELECT ('(0,0)'::point <@> '(0,90)'::point)::numeric(20,5);
select ('(0,0)'::point <@> '(90,0)'::point)::numeric(20,5); SELECT ('(0,0)'::point <@> '(90,0)'::point)::numeric(20,5);
select ('(0,0)'::point <@> '(1,0)'::point)::numeric(20,5); SELECT ('(0,0)'::point <@> '(1,0)'::point)::numeric(20,5);
select ('(0,0)'::point <@> '(0,1)'::point)::numeric(20,5); SELECT ('(0,0)'::point <@> '(0,1)'::point)::numeric(20,5);
select ('(0,30)'::point <@> '(1,30)'::point)::numeric(20,5); SELECT ('(0,30)'::point <@> '(1,30)'::point)::numeric(20,5);
select ('(0,30)'::point <@> '(0,31)'::point)::numeric(20,5); SELECT ('(0,30)'::point <@> '(0,31)'::point)::numeric(20,5);
select ('(0,60)'::point <@> '(1,60)'::point)::numeric(20,5); SELECT ('(0,60)'::point <@> '(1,60)'::point)::numeric(20,5);
select ('(0,60)'::point <@> '(0,61)'::point)::numeric(20,5); SELECT ('(0,60)'::point <@> '(0,61)'::point)::numeric(20,5);
select ('(87.6,41.8)'::point <@> '(106.7,35.1)'::point)::numeric(20,5); SELECT ('(87.6,41.8)'::point <@> '(106.7,35.1)'::point)::numeric(20,5);
select (('(87.6,41.8)'::point <@> '(106.7,35.1)'::point)*5280.*12.*2.54/100.)::numeric(20,5); SELECT (('(87.6,41.8)'::point <@> '(106.7,35.1)'::point)*5280.*12.*2.54/100.)::numeric(20,5);
-- --
-- Test getting a bounding box around points. -- Test getting a bounding box around points.
-- --
select cube_ll_coord(earth_box(ll_to_earth(0,0),112000),1)::numeric(20,5), SELECT cube_ll_coord(earth_box(ll_to_earth(0,0),112000),1)::numeric(20,5),
cube_ll_coord(earth_box(ll_to_earth(0,0),112000),2)::numeric(20,5), cube_ll_coord(earth_box(ll_to_earth(0,0),112000),2)::numeric(20,5),
cube_ll_coord(earth_box(ll_to_earth(0,0),112000),3)::numeric(20,5), cube_ll_coord(earth_box(ll_to_earth(0,0),112000),3)::numeric(20,5),
cube_ur_coord(earth_box(ll_to_earth(0,0),112000),1)::numeric(20,5), cube_ur_coord(earth_box(ll_to_earth(0,0),112000),1)::numeric(20,5),
cube_ur_coord(earth_box(ll_to_earth(0,0),112000),2)::numeric(20,5), cube_ur_coord(earth_box(ll_to_earth(0,0),112000),2)::numeric(20,5),
cube_ur_coord(earth_box(ll_to_earth(0,0),112000),3)::numeric(20,5); cube_ur_coord(earth_box(ll_to_earth(0,0),112000),3)::numeric(20,5);
select cube_ll_coord(earth_box(ll_to_earth(0,0),pi()*earth()),1)::numeric(20,5), SELECT cube_ll_coord(earth_box(ll_to_earth(0,0),pi()*earth()),1)::numeric(20,5),
cube_ll_coord(earth_box(ll_to_earth(0,0),pi()*earth()),2)::numeric(20,5), cube_ll_coord(earth_box(ll_to_earth(0,0),pi()*earth()),2)::numeric(20,5),
cube_ll_coord(earth_box(ll_to_earth(0,0),pi()*earth()),3)::numeric(20,5), cube_ll_coord(earth_box(ll_to_earth(0,0),pi()*earth()),3)::numeric(20,5),
cube_ur_coord(earth_box(ll_to_earth(0,0),pi()*earth()),1)::numeric(20,5), cube_ur_coord(earth_box(ll_to_earth(0,0),pi()*earth()),1)::numeric(20,5),
cube_ur_coord(earth_box(ll_to_earth(0,0),pi()*earth()),2)::numeric(20,5), cube_ur_coord(earth_box(ll_to_earth(0,0),pi()*earth()),2)::numeric(20,5),
cube_ur_coord(earth_box(ll_to_earth(0,0),pi()*earth()),3)::numeric(20,5); cube_ur_coord(earth_box(ll_to_earth(0,0),pi()*earth()),3)::numeric(20,5);
select cube_ll_coord(earth_box(ll_to_earth(0,0),10*earth()),1)::numeric(20,5), SELECT cube_ll_coord(earth_box(ll_to_earth(0,0),10*earth()),1)::numeric(20,5),
cube_ll_coord(earth_box(ll_to_earth(0,0),10*earth()),2)::numeric(20,5), cube_ll_coord(earth_box(ll_to_earth(0,0),10*earth()),2)::numeric(20,5),
cube_ll_coord(earth_box(ll_to_earth(0,0),10*earth()),3)::numeric(20,5), cube_ll_coord(earth_box(ll_to_earth(0,0),10*earth()),3)::numeric(20,5),
cube_ur_coord(earth_box(ll_to_earth(0,0),10*earth()),1)::numeric(20,5), cube_ur_coord(earth_box(ll_to_earth(0,0),10*earth()),1)::numeric(20,5),
@ -221,28 +221,28 @@ select cube_ll_coord(earth_box(ll_to_earth(0,0),10*earth()),1)::numeric(20,5),
-- Test for points that should be in bounding boxes. -- Test for points that should be in bounding boxes.
-- --
select earth_box(ll_to_earth(0,0), SELECT earth_box(ll_to_earth(0,0),
earth_distance(ll_to_earth(0,0),ll_to_earth(0,1))*1.00001) @ earth_distance(ll_to_earth(0,0),ll_to_earth(0,1))*1.00001) @
ll_to_earth(0,1); ll_to_earth(0,1);
select earth_box(ll_to_earth(0,0), SELECT earth_box(ll_to_earth(0,0),
earth_distance(ll_to_earth(0,0),ll_to_earth(0,0.1))*1.00001) @ earth_distance(ll_to_earth(0,0),ll_to_earth(0,0.1))*1.00001) @
ll_to_earth(0,0.1); ll_to_earth(0,0.1);
select earth_box(ll_to_earth(0,0), SELECT earth_box(ll_to_earth(0,0),
earth_distance(ll_to_earth(0,0),ll_to_earth(0,0.01))*1.00001) @ earth_distance(ll_to_earth(0,0),ll_to_earth(0,0.01))*1.00001) @
ll_to_earth(0,0.01); ll_to_earth(0,0.01);
select earth_box(ll_to_earth(0,0), SELECT earth_box(ll_to_earth(0,0),
earth_distance(ll_to_earth(0,0),ll_to_earth(0,0.001))*1.00001) @ earth_distance(ll_to_earth(0,0),ll_to_earth(0,0.001))*1.00001) @
ll_to_earth(0,0.001); ll_to_earth(0,0.001);
select earth_box(ll_to_earth(0,0), SELECT earth_box(ll_to_earth(0,0),
earth_distance(ll_to_earth(0,0),ll_to_earth(0,0.0001))*1.00001) @ earth_distance(ll_to_earth(0,0),ll_to_earth(0,0.0001))*1.00001) @
ll_to_earth(0,0.0001); ll_to_earth(0,0.0001);
select earth_box(ll_to_earth(0,0), SELECT earth_box(ll_to_earth(0,0),
earth_distance(ll_to_earth(0,0),ll_to_earth(0.0001,0.0001))*1.00001) @ earth_distance(ll_to_earth(0,0),ll_to_earth(0.0001,0.0001))*1.00001) @
ll_to_earth(0.0001,0.0001); ll_to_earth(0.0001,0.0001);
select earth_box(ll_to_earth(45,45), SELECT earth_box(ll_to_earth(45,45),
earth_distance(ll_to_earth(45,45),ll_to_earth(45.0001,45.0001))*1.00001) @ earth_distance(ll_to_earth(45,45),ll_to_earth(45.0001,45.0001))*1.00001) @
ll_to_earth(45.0001,45.0001); ll_to_earth(45.0001,45.0001);
select earth_box(ll_to_earth(90,180), SELECT earth_box(ll_to_earth(90,180),
earth_distance(ll_to_earth(90,180),ll_to_earth(90.0001,180.0001))*1.00001) @ earth_distance(ll_to_earth(90,180),ll_to_earth(90.0001,180.0001))*1.00001) @
ll_to_earth(90.0001,180.0001); ll_to_earth(90.0001,180.0001);
@ -252,28 +252,28 @@ select earth_box(ll_to_earth(90,180),
-- but further away than the distance we are testing. -- but further away than the distance we are testing.
-- --
select earth_box(ll_to_earth(0,0), SELECT earth_box(ll_to_earth(0,0),
earth_distance(ll_to_earth(0,0),ll_to_earth(0,1))*.57735) @ earth_distance(ll_to_earth(0,0),ll_to_earth(0,1))*.57735) @
ll_to_earth(0,1); ll_to_earth(0,1);
select earth_box(ll_to_earth(0,0), SELECT earth_box(ll_to_earth(0,0),
earth_distance(ll_to_earth(0,0),ll_to_earth(0,0.1))*.57735) @ earth_distance(ll_to_earth(0,0),ll_to_earth(0,0.1))*.57735) @
ll_to_earth(0,0.1); ll_to_earth(0,0.1);
select earth_box(ll_to_earth(0,0), SELECT earth_box(ll_to_earth(0,0),
earth_distance(ll_to_earth(0,0),ll_to_earth(0,0.01))*.57735) @ earth_distance(ll_to_earth(0,0),ll_to_earth(0,0.01))*.57735) @
ll_to_earth(0,0.01); ll_to_earth(0,0.01);
select earth_box(ll_to_earth(0,0), SELECT earth_box(ll_to_earth(0,0),
earth_distance(ll_to_earth(0,0),ll_to_earth(0,0.001))*.57735) @ earth_distance(ll_to_earth(0,0),ll_to_earth(0,0.001))*.57735) @
ll_to_earth(0,0.001); ll_to_earth(0,0.001);
select earth_box(ll_to_earth(0,0), SELECT earth_box(ll_to_earth(0,0),
earth_distance(ll_to_earth(0,0),ll_to_earth(0,0.0001))*.57735) @ earth_distance(ll_to_earth(0,0),ll_to_earth(0,0.0001))*.57735) @
ll_to_earth(0,0.0001); ll_to_earth(0,0.0001);
select earth_box(ll_to_earth(0,0), SELECT earth_box(ll_to_earth(0,0),
earth_distance(ll_to_earth(0,0),ll_to_earth(0.0001,0.0001))*.57735) @ earth_distance(ll_to_earth(0,0),ll_to_earth(0.0001,0.0001))*.57735) @
ll_to_earth(0.0001,0.0001); ll_to_earth(0.0001,0.0001);
select earth_box(ll_to_earth(45,45), SELECT earth_box(ll_to_earth(45,45),
earth_distance(ll_to_earth(45,45),ll_to_earth(45.0001,45.0001))*.57735) @ earth_distance(ll_to_earth(45,45),ll_to_earth(45.0001,45.0001))*.57735) @
ll_to_earth(45.0001,45.0001); ll_to_earth(45.0001,45.0001);
select earth_box(ll_to_earth(90,180), SELECT earth_box(ll_to_earth(90,180),
earth_distance(ll_to_earth(90,180),ll_to_earth(90.0001,180.0001))*.57735) @ earth_distance(ll_to_earth(90,180),ll_to_earth(90.0001,180.0001))*.57735) @
ll_to_earth(90.0001,180.0001); ll_to_earth(90.0001,180.0001);
@ -281,19 +281,19 @@ select earth_box(ll_to_earth(90,180),
-- Test the recommended constraints. -- Test the recommended constraints.
-- --
select is_point(ll_to_earth(0,0)); SELECT is_point(ll_to_earth(0,0));
select cube_dim(ll_to_earth(0,0)) <= 3; SELECT cube_dim(ll_to_earth(0,0)) <= 3;
select abs(cube_distance(ll_to_earth(0,0), '(0)'::cube) / earth() - 1) < SELECT abs(cube_distance(ll_to_earth(0,0), '(0)'::cube) / earth() - 1) <
'10e-12'::float8; '10e-12'::float8;
select is_point(ll_to_earth(30,60)); SELECT is_point(ll_to_earth(30,60));
select cube_dim(ll_to_earth(30,60)) <= 3; SELECT cube_dim(ll_to_earth(30,60)) <= 3;
select abs(cube_distance(ll_to_earth(30,60), '(0)'::cube) / earth() - 1) < SELECT abs(cube_distance(ll_to_earth(30,60), '(0)'::cube) / earth() - 1) <
'10e-12'::float8; '10e-12'::float8;
select is_point(ll_to_earth(60,90)); SELECT is_point(ll_to_earth(60,90));
select cube_dim(ll_to_earth(60,90)) <= 3; SELECT cube_dim(ll_to_earth(60,90)) <= 3;
select abs(cube_distance(ll_to_earth(60,90), '(0)'::cube) / earth() - 1) < SELECT abs(cube_distance(ll_to_earth(60,90), '(0)'::cube) / earth() - 1) <
'10e-12'::float8; '10e-12'::float8;
select is_point(ll_to_earth(-30,-90)); SELECT is_point(ll_to_earth(-30,-90));
select cube_dim(ll_to_earth(-30,-90)) <= 3; SELECT cube_dim(ll_to_earth(-30,-90)) <= 3;
select abs(cube_distance(ll_to_earth(-30,-90), '(0)'::cube) / earth() - 1) < SELECT abs(cube_distance(ll_to_earth(-30,-90), '(0)'::cube) / earth() - 1) <
'10e-12'::float8; '10e-12'::float8;