「計算距離」和「我附近的...」的功能太陽設計出來的程序如下:
這當中困擾太陽最久的就是,怎麼讓從JavaScript取得的Current座標,送到PHP。
今天要跟各位報告的是,算出兩個座標間的距離,這還滿怪的,因為在昨天的報告(路線規劃)中,就已經會顯示兩點之間的距離了,為什麼又要多此一舉呢?
主要是因為太陽想要用「計算距離」這個功能,搭配「我附近的...」這個功能,目前在許多網站上,都已經有這樣的功能,並且行之有年。
像是TrapAdvisor這個網站的Mobile版,就有類似的功能。
為了要有像這樣的功能,太陽花了很多時間在測試,主要還是因為...他不了解一些語言之間的運作模式,像是在PHP與JavaScript或JQuery間的參數互傳之類的運作方式,他完全不了解,雖然有上網查過資料,但要從零開始再到可以使用,一定會更多時間,所以他還是只能在自己有限的能力內,完成這樣的功能製作。
出兩點間的距離公式,太陽使用的是原來Google MAP V2 文件裏提供的公式,公式如下:
$search="SELECT * ,((ACOS(SIN($current_lat * PI() / 180) * SIN(`dest_lat` * PI() / 180) \n"
. " + COS($current_lat * PI() / 180) * COS(`dest_lat` * PI() / 180) * COS(($current_ing - `dest_ing`) \n"
. " * PI() / 180)) * 180 / PI()) * 60 * 1.1515) AS `distance` \n"
. " FROM table ( `dest_lat` BETWEEN ($current_lat - $bounding_distance) AND ($current_lat + $bounding_distance) \n"
. " AND `dest_ing` BETWEEN ($current_ing - $bounding_distance) AND ($current_ing + $bounding_distance)) \n"
. " ORDER BY `distance` asc limit 20 \n";
「計算距離」和「我附近的...」的功能太陽設計出來的程序如下:
這當中困擾太陽最久的就是,怎麼讓從JavaScript取得的Current座標,送到PHP。最後,他想到了一個很笨的方法....
(待)
下回預告:
太陽想到的笨方法是什麼?
明天再向各位先進報告。
2013/10/11 SunAllen
鐵人賽_開發技術組_文章導覽