1. 程式人生 > >H5之11__GeoLocation 地理定位

H5之11__GeoLocation 地理定位

GeoLocation API  通常用於移動裝置獲取地理位置,嚴格來說,它並不屬於H5的標準規範.


一  如何使用 GeoLocation API? 

要使用該API, 通過window.navigator.geolocatio  獲得 對地理定位的訪問。 該物件有如下三個方法:

1.  getCurrentPosition()

2. watchPosition()

3. clearWatch()


getCurrentPosition()方法 可以傳遞三個引數, 如下所示:

void  getCurrentPosition(PositionCallback successCallback,  optional  PositionErrorCallback  errorCallback,   optional  PositionOptions  options);

其中第一個引數為必選引數,後面兩個為可選引數

看一個示例: 

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
    <title>GeoLocation API 地理定位</title>
    <script type="text/javascript">
    	
   		
   		window.navigator.geolocation.getCurrentPosition(function(pos){
   			alert("當前地理位置的緯度: " +pos.coords.latitude
   			+"\n當前地理位置的經度: " +pos.coords.longitude
   			+ "\n當前經緯度的精度: " +pos.coords.accuracy
   			+ "\n裝置的當前運動方向: " +pos.coords.heading
   			+ "\n裝置的當前速度: " +pos.coords.speed
   			);
   			
   		});
   		
   		var watchID= window.navigator.geolocation.watchPosition(function(pos){
   			alert("當前位置變化的緯度: " +pos.coords.latitude
   			+"\n當前位置變化的經度: " +pos.coords.longitude
   			+ "\n當前經緯度變化的精度: " +pos.coords.accuracy
   			+ "\n裝置的當前運動方向: " +pos.coords.heading
   			+ "\n裝置的當前變化的速度: " +pos.coords.speed);
   			
   			navigator.geolocation.clearWatch(watchID);
   		}, function(){
   		});
    </script>
</head>
<body>
	
</body>
</html>

呼叫getCurrentPosition()  成功後,回撥的函式中,可以通過其中的引數物件, 獲得當前使用者訪問Web 頁面時的地理位置資訊

pos 物件包含一個coords  屬性, coords 屬性表示一系列的地理座標資訊.

latitude:   緯度 (十進位制)

longitude:  經度(十進位制)

altitude:  高度

acuracy:  經緯度座標的精度 (米為單位)

altitudeAccuracy:  以米為單位的高度座標精度水平

heading:  運動的方向 (通過相對正北做順時針旋轉的角度指定)

speed:  當前地面速度(m/s 為單位)

pos  還包含一個 timestamp 屬性,該屬性用於返回 coords 物件時以毫秒為單位建立時間戳。


效果圖如下: