September 2017 Update
This commit is contained in:
parent
bba7bfd280
commit
ba8067c3b7
14570 changed files with 153136 additions and 63871 deletions
26
Task/Haversine-formula/MySQL/haversine-formula.sql
Normal file
26
Task/Haversine-formula/MySQL/haversine-formula.sql
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
DELIMITER $$
|
||||
|
||||
CREATE FUNCTION haversine (
|
||||
lat1 FLOAT, lon1 FLOAT,
|
||||
lat2 FLOAT, lon2 FLOAT
|
||||
) RETURNS FLOAT
|
||||
NO SQL DETERMINISTIC
|
||||
BEGIN
|
||||
DECLARE r FLOAT unsigned DEFAULT 6372.8;
|
||||
DECLARE dLat FLOAT unsigned;
|
||||
DECLARE dLon FLOAT unsigned;
|
||||
DECLARE a FLOAT unsigned;
|
||||
DECLARE c FLOAT unsigned;
|
||||
|
||||
SET dLat = RADIANS(lat2 - lat1);
|
||||
SET dLon = RADIANS(lon2 - lon1);
|
||||
SET lat1 = RADIANS(lat1);
|
||||
SET lat2 = RADIANS(lat2);
|
||||
|
||||
SET a = POW(SIN(dLat / 2), 2) + COS(lat1) * COS(lat2) * POW(SIN(dLon / 2), 2);
|
||||
SET c = 2 * ASIN(SQRT(a));
|
||||
|
||||
RETURN (r * c);
|
||||
END$$
|
||||
|
||||
DELIMITER ;
|
||||
Loading…
Add table
Add a link
Reference in a new issue