เขียนฟังก์ชั่น สำหรับ หาระยะห่างระหว่าง 2 จุด ใน MySQL

Post a reply

Smilies
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: เขียนฟังก์ชั่น สำหรับ หาระยะห่างระหว่าง 2 จุด ใน MySQL

Re: เขียนฟังก์ชั่น สำหรับ หาระยะห่างระหว่าง 2 จุด ใน MySQL

by mindphp » 24/02/2016 3:04 am

ถ้าจะใช้ หน่วย ไมล์ เป็น เมตร เปลี่ยน ค่า 3958.76 เป็น 6367 แทน

เขียนฟังก์ชั่น สำหรับ หาระยะห่างระหว่าง 2 จุด ใน MySQL

by mindphp » 24/02/2016 12:05 am

Code: Select all

delimiter //
create DEFINER = CURRENT_USER function get_distance_sp (lat1 double, lon1 double, lat2 double, lon2 double) returns double
 begin
   declare R int DEFAULT 3958.76;
   declare phi1 double;
   declare phi2 double;
   declare d_phi double;
   declare d_lambda double;
   declare a double;
   declare c double;
   declare d double;
   set phi1 = radians(lat1);
   set phi2 = radians(lat2);
   set d_phi = radians(lat2-lat1);
   set d_lambda = radians(lon2-lon1);
   set a = sin(d_phi/2) * sin(d_phi/2) +
         cos(phi1) * cos(phi2) *
         sin(d_lambda/2) * sin(d_lambda/2);
   set c = 2 * atan2(sqrt(a), sqrt(1-a));
   set d = R * c;
   return d;
   end;
//
delimiter ;

Top