最後將計算出的距離,轉化為公里,得到想要的結果。
太陽想到將JavaScript取得的經緯度值,傳送到PHP的方法是...POST。
1.一開始的時候,載入Google MAP API V2需要載入的js
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?key=(輸入api v2 key)&sensor=true">"></script>
設定一個<a>,<a>加入onclick="xxx()",按下這個<a>之後,進入JavaScript的function。
<li><a href="#" onclick="sendfood()">
<img src="../img/res.png" data-inline="true" />
<h2>我附近的餐廳</h2>
<p></p></a>
</li>
3.JavaScript的內容如下:
function sendfood(){
if (navigator.geolocation)
{
//Get the current position
navigator.geolocation.getCurrentPosition(function (position)
{
var latitude = position.coords.latitude; //取得經緯度數值
var longitude = position.coords.longitude; //取得經緯度數值
location.href='xxx.php?lat='+latitude+'&ing='+longitude; //將取得的數值,送到另一個php檔,並將網頁轉向到另一個php檔
});
}
else
{
alert("Sorry... your browser does not support the HTML5 GeoLocation API");
}
}
4.php檔接收到數值後,取出資料庫內的資料,並加以計算。
$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";
5.最後將計算出的距離,轉化為公里,得到想要的結果。
下回預告:
版面設計時的痛苦...將向各位大大報告。
2013/10/12 SunAllen
鐵人賽_開發技術組_文章導覽