Search
 
SCRIPT & CODE EXAMPLE
 

SQL

calculate distance between two latitude longitude postgresql

CREATE OR REPLACE FUNCTION calculate_distance(lat1 float, lon1 float, lat2 float, lon2 float, units varchar)
            RETURNS float AS $dist$
                DECLARE
                    dist float = 0;
                    radlat1 float;
                    radlat2 float;
                    theta float;
                    radtheta float;
                BEGIN
                    IF lat1 = lat2 OR lon1 = lon2
                        THEN RETURN dist;
                    ELSE
                        radlat1 = pi() * lat1 / 180;
                        radlat2 = pi() * lat2 / 180;
                        theta = lon1 - lon2;
                        radtheta = pi() * theta / 180;
                        dist = sin(radlat1) * sin(radlat2) + cos(radlat1) * cos(radlat2) * cos(radtheta);
                        IF dist > 1 THEN dist = 1; END IF;
                        dist = acos(dist);
                        dist = dist * 180 / pi();
                        dist = dist * 60 * 1.1515;
                        IF units = 'K' THEN dist = dist * 1.609344; END IF;
                        IF units = 'N' THEN dist = dist * 0.8684; END IF;
                        RETURN dist;
                    END IF;
                END;
            $dist$ LANGUAGE plpgsql;


//Usage:
SELECT calculate_distance(41.311081, 69.240562, 39.7681, 64.4556, 'M');
SELECT calculate_distance(41.311081, 69.240562, 39.7681, 64.4556, 'K');
SELECT calculate_distance(41.311081, 69.240562, 39.7681, 64.4556, 'N');
Comment

PREVIOUS NEXT
Code Example
Sql :: sql substring before last occurrence of character 
Sql :: how to get nears location in mysql with latitude and longitude 
Sql :: sqlite to csv statement 
Sql :: regex mongoose 
Sql :: start mysql 
Sql :: sql select sum group by id laravel 
Sql :: drop view sql 
Sql :: is between inclusive or exclusive sql 
Sql :: connect to ssms with python 
Sql :: add primary key with auto increment sql server 
Sql :: how to change column name in sql 
Sql :: sql cheat sheet pdf 
Sql :: how to find lowest in sql 
Sql :: get current month last date in sql server 
Sql :: define a variable in mysql from select 
Sql :: add column in sql server 
Sql :: phpmyadmin password root 
Sql :: sql server rtrim everything after character 
Sql :: sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) unable to open database file 
Sql :: mysql set last_insert_id 
Sql :: postgresql size of database 
Sql :: oracle case 
Sql :: mysql failed to login as root@localhost 
Sql :: convert varchar column to int in sql server 
Sql :: laravel general error 2006 mysql server has gone away 
Sql :: how to combine diff colmun value using group by postgres 
Sql :: DATEDIFF minute postgres 
Sql :: mysql if null 
Sql :: mysql decimal allow negative values? 
Sql :: mysql if condition 
ADD CONTENT
Topic
Content
Source link
Name
6+4 =