หน้าเว็บ

วันจันทร์ที่ 5 มีนาคม พ.ศ. 2555

mysql search around [Haversine formula algorithm (finding locations nearby)]

SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance FROM markers HAVING distance < 25 ORDER BY distance LIMIT 0 , 20;

        เป็น algorithm ที่ใช้ในการค้นหาพิกัดตำแหน่ง GPS ที่อยู่ในรัศมีที่เรากำหนด  เช่นจากตัวอย่าง code ข้างบน  บอกว่าให้ค้นหา  id ที่อยู่รอบๆ GPS  37,-122(latitude,longitude)  ในรัศมี 25 ไมล์  มาจำนวน 20 คน 

3959 คือ รัศมีของโลกมีหน่วยเป็นไมล์
ถ้าจะใช้หน่วยเป็นกิโลเมตรในการค้นหา  ให้เปลี่ยนเป็น 6371  

2 ความคิดเห็น:

  1. ช่วย อธิบาย แบบ ละเอียดกว่า นี้ ได้มั้ยอะคับ ถ้าผมจะทำ บน แอนดรอย อ่า

    ตอบลบ
  2. http://na5cent.blogspot.com/2012/12/get-users-on-user-around.html

    ตอบลบ