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
ช่วย อธิบาย แบบ ละเอียดกว่า นี้ ได้มั้ยอะคับ ถ้าผมจะทำ บน แอนดรอย อ่า
ตอบลบhttp://na5cent.blogspot.com/2012/12/get-users-on-user-around.html
ตอบลบ