Page 1 of 1

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

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

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 ;

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

Posted: 24/02/2016 3:04 am
by mindphp
ถ้าจะใช้ หน่วย ไมล์ เป็น เมตร เปลี่ยน ค่า 3958.76 เป็น 6367 แทน