iT邦幫忙

DAY 10
8

東之宿_網站開發系列 第 10

東之宿_開發日誌-11(Google MAP 距離計算-上)

「計算距離」和「我附近的...」的功能太陽設計出來的程序如下:

這當中困擾太陽最久的就是,怎麼讓從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

鐵人賽_開發技術組_文章導覽

上一篇
下一篇

2013鐵人賽_文章總覽
個人全系列連結


上一篇
東之宿_開發日誌-10(Google MAP 路線規劃)
下一篇
東之宿_開發日誌-12(Google MAP 距離計算-下)
系列文
東之宿_網站開發16

2 則留言

0
老鷹(eagle)
iT邦高手 1 級 ‧ 2013-10-11 08:10:41

筆記拍手沙發

噴鼻血喜歡拍手

0
炎之虛空
iT邦高手 3 級 ‧ 2013-10-11 12:59:01

其實取得座標資料
丟去Google Directions API處理較快XDDDD

我要留言

立即登入留言