Guest User

Untitled

a guest
Jul 18th, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.98 KB | None | 0 0
  1. DELIMITER $$
  2. DROP PROCEDURE geodist; $$
  3. CREATE PROCEDURE geodist (IN mylon double, IN mylat double, IN dist_in_km int)
  4. BEGIN
  5. declare dist_in_miles float;
  6. declare lon1 float;
  7. declare lon2 float;
  8. declare lat1 float;
  9. declare lat2 float;
  10.  
  11. set dist_in_miles = dist_in_km * 1.609344;
  12. set lon1 = mylon-dist_in_miles/abs(cos(radians(mylat))*69);
  13. set lon2 = mylon+dist_in_miles/abs(cos(radians(mylat))*69);
  14. set lat1 = mylat-(dist_in_miles/69);
  15. set lat2 = mylat+(dist_in_miles/69);
  16.  
  17. SELECT concat(dest.lat, ',' , dest.lon) as LatLng, prcodf, prpay, codpos, libbp, colrue,
  18. 3956 * 2 * ASIN(SQRT(POWER(SIN((mylat - dest.lat) * pi()/180 / 2), 2) + COS(mylat * pi()/180) *COS(dest.lat * pi()/180) * POWER(SIN((mylon -dest.lon) * pi()/180 / 2), 2))) * 1.609344 as distance_in_km
  19. FROM
  20. mondial_relay_pickup_points dest
  21. WHERE
  22. dest.lon between lon1 and lon2
  23. and dest.lat between lat1 and lat2
  24. having distance_in_km < dist_in_km ORDER BY distance_in_km
  25. limit 10;
  26. END;
  27. $$
  28.  
  29. call geodist(4.9979310, 50.5735450, 10);$$
Add Comment
Please, Sign In to add comment