หน้าเว็บ

วันพฤหัสบดีที่ 6 ธันวาคม พ.ศ. 2555

get friends on location area

พอดี  ผมเห็นมีแต่คนมาถามเรื่องนี้อ่ะครับ   เรื่องโปรเจ็คจบผม android (Social Network Location)
ผมไม่สามารถที่จะให้ source code ทั้งหมดไปได้น่ะครับ  เพราะผมจะนำไปพัฒนาต่อ
แต่ผมสามารถช่วยเหลือในบางส่วนได้ครับ

วันนี้  ผมก็เลยเอามาให้ดูกันเลยแล้วกันครับว่า source code search around ทางฝั่ง server (PHP and MySQL)  มันเป็นยังไง
อันนี้ return data เป็น json น่ะครับ
android ก็แค่มา get เอาข้อมูลไปก็แค่นั้นเอง

code คือ return list of friends on location area

...
...
...
mysql_connect($host,$user,$password) or die("unable connect to database server!");
mysql_select_db("my_project");
mysql_query("SET NAMES UTF8");

$result_query = mysql_query(
   "SELECT 
        u.id,
        u.firstname,
        u.lastname,
        u.img,
        u.about,
        u.latitude,
        u.longitude,
        ( 6371 * acos( 
                        cos( radians( '$latitude' ) ) 
                      * cos( radians( u.latitude  ) ) 
                      * cos( 
                                radians( u.longitude  ) 
                              - radians( '$longitude' ) 
                            ) 
                      + sin( radians( '$latitude' ) ) 
                      * sin( radians( latitude    ) ) 
                 ) 
        ) AS distance,
        f.confirm
    FROM tbl_user u LEFT JOIN tbl_friend f 
        ON ( u.id = f.user2 AND '$id' = f.user1 )
    WHERE u.id <> '$id' 
    HAVING distance <= '$radius' 
    ORDER BY distance ASC
");

$count=0;
$response = array();
while($data=mysql_fetch_array($result_query)){
    $response[$count++]=array(
               "id" => $data["id"],
        "firstname" => $data["firstname"],
         "lastname" => $data["lastname"],
              "img" => $data["img"],
            "about" => $data["about"],
         "latitude" => $data["latitude"],
        "longitude" => $data["longitude"],
         "distance" => $data["distance"],
          "confirm" => $data["confirm"]
     );
}

echo json_encode($response);
ผลที่ได้คือ


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

  1. ผม อยากให้ สอน เลย อะมันจะเปนไปได้มั้ยคับ เพราะ ผมก้ทำโปรเจค คล้ายกันอยู่ ... ช่วยตอบ กับที คับ walker.better@gmail.com

    ตอบลบ
  2. ช่วงนี้ ผมไม่ได้เขียน android เลยครัย
    จับแต่ j2EE ไม่มีเวลามาเล่นเลยครับ

    ตอบลบ
  3. อยากให้อธิบาย ช่วงนี้ให้กับคนโง่ๆอย่างผมหน่อยครับ ดูแล้วมึนมาก งง ทั้งบวก ทั้ง ลบ ทั้ง ดาว ทำไมเยอะขนาดนี้
    u.longitude,
    ( 6371 * acos(
    cos( radians( '$latitude' ) )
    * cos( radians( u.latitude ) )
    * cos(
    radians( u.longitude )
    - radians( '$longitude' )
    )
    + sin( radians( '$latitude' ) )
    * sin( radians( latitude ) )
    )
    ) AS distance

    ตอบลบ
  4. มันมาจากทฤษฎีนี้ครับ
    http://en.wikipedia.org/wiki/Haversine_formula

    ตอบลบ
  5. ที่จริงการคำนวณระห่างระหว่าง GPS 2 จุด เราสามารถทำได้อีกวิธีครับ
    แต่วิธีนี้ ต้องมีค่าความแตกต่างของพื้นที่ในแต่ละ ละติจูดเข้ามาเกี่ยวข้อง http://na5cent.blogspot.com/2011/07/gps-2-javascript.html ซึ่งผมขอแนะนำสูตร haversine ดีกว่าครับ

    ตอบลบ
  6. ขอบคุณ ครับ เทพจริง

    ตอบลบ