管住设施地点音讯

Geolocation模块管理设施地方音信,用于获取地理地点讯息,如经度、纬度等。通过plus.geolocation可获取装备地点管理对象。纵然W3C已经提供专业API获取地方音讯,但在少数平台存在差距或未落到实处,为了维持各平台的统一性,定义此规范接口获取地方消息。

1、方法

1.一 、getCurrentPosition: 获取当前装备地方信息

   void
plus.geolocation.getCurrentPosition( successCB, errorCB, option
);

表达:地方音讯将因此手提式有线电电话机GPS设备或别的消息如IP地址、移动互联网信号获取,由于得到地方消息也许须求较长的时日,当成功收获地点音信后将由此successCB回调函数重临。

参数:

successCB: (
GeolocationSuccessCallback ) 必选
获取装备地方新闻成功回调函数

errorCB: (
GeolocationErrorCallback ) 可选 获取装备地方新闻战败回调函数

option: (
PositionOptions ) 可选 获取装备地点新闻的参数

返回值:void
: 无

阳台扶助:Android

  • 2.2+ (支持): 支持、iOS – 4.3+ (支持): 支持

示例:

[html] view
plain

copy
print?

  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4. <meta charset=”utf-8″>  
  5. <title>Geolocation Example</title>  
  6. <script type=”text/javascript” >  
  7. // 扩大API加载达成后调用onPlusReady回调函数  
  8. document.addEventListener( “plusready”, onPlusReady, false );  
  9. // 扩充API加载达成,以后可以正常调用扩充API  
  10. function onPlusReady() {  
  11. plus.geolocation.getCurrentPosition( function ( p ) {  
  12. alert( “Geolocation\nLatitude:” + p.coords.latitude + “\nLongitude:” + p.coords.longitude + “\nAltitude:” + p.coords.altitude );  
  13. }, function ( e ) {  
  14. alert( “Geolocation error: ” + e.message );  
  15. } );  
  16. }  
  17. </script>  
  18. </head>  
  19. <body >  
  20. </body>  
  21. </html>  




    Geolocation Example




 

1.贰 、watchPosition: 监听设备地方变动消息

      Number
plus.geolocation.watchPosition( successCB, errorCB, option );

表明:地点音信将因此手提式有线电电话机GPS设备或其余信息如IP地址、移动网络信号获取。当地方消息更新后将经过successCB回调函数重返。地点消息获得退步则调用回调函数errorCB。

必发bifa88手机客服端,参数:

successCB: (
GeolocationSuccessCallback ) 必选
设备地方音讯更新成功回调函数

errorCB: (
GeolocationErrorCallback ) 可选 获取装备地方音讯失利回调函数

option: (
PositionOptions ) 可选 监听设备地方新闻的参数

再次来到值:Number :
用于标识地点音讯监听器,可透过clear沃特ch方法裁撤监听。

平台支撑:Android

  • 2.2+ (支持): 支持,iOS – 4.3+ (支持): 支持

示例:

[html] view
plain

copy
print?

  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4. <meta charset=”utf-8″>  
  5. <title>Geolocation Example</title>  
  6. <script type=”text/javascript” >  
  7. // 增加API加载达成后调用onPlusReady回调函数  
  8. document.addEventListener( “plusready”, onPlusReady, false );  
  9. // 扩充API加载完毕,以后得以健康调用扩大API  
  10. function onPlusReady() {  
  11. plus.geolocation.watchPosition( function ( a ) {  
  12. alert( “Geolocation\nLatitude:” + p.coords.latitude + “\nLongitude:” + p.coords.longitude + “\nAltitude:” + p.coords.altitude );  
  13. }, function ( e ) {  
  14. alert( “Geolocation error: ” + e.message );  
  15. } );  
  16. }  
  17. </script>  
  18. </head>  
  19. <body >  
  20. </body>  
  21. </html>  




    Geolocation Example




 

1.三 、clearWatch: 关闭监听设备地点新闻

       void
plus.geolocation.clearWatch( watchId );

参数:watchId: (
Number ) 必选
要求撤销的岗位监听器标识,调用watchPosition方法的再次来到值。

返回值:void
: 无

平台支撑:Android

  • 2.2+ (支持): 支持,iOS – 4.3+ (支持): 支持

示例:

[html] view
plain

copy
print?

  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4. <meta charset=”utf-8″>  
  5. <title>Geolocation Example</title>  
  6. <script type=”text/javascript” >  
  7. // 增添API加载完成后调用onPlusReady回调函数  
  8. document.addEventListener( “plusready”, onPlusReady, false );  
  9. // 扩展API加载完成,以往得以健康调用扩充API  
  10. var wid = null;  
  11. function onPlusReady() {  
  12. wid = plus.geolocation.watchPosition( function ( p ) {  
  13. alert( “Geolocation\nLatitude:” + p.coords.latitude + “\nLongitude:” + p.coords.longitude + “\nAltitude:” + p.coords.altitude );  
  14. }, function ( e ) {  
  15. alert( “Geolocation error: ” + e.message );  
  16. } );  
  17. }  
  18. function cancel() {  
  19. plus.geolocation.clearWatch( wid );  
  20. wid = null;  
  21. }  
  22. </script>  
  23. </head>  
  24. <body >  
  25. <input type=”button” value=”Cancel” onclick=”cancel();” ></input>  
  26. </body>  
  27. </html>  




    Geolocation Example





 

2、对象

2.一 、Position: JSON对象,设备地方新闻数据

interface
Position {

readonly
attribute Coordinates coords;

readonly
attribute String coordsType;

readonly
attribute Number timestamp;

readonly
attribute Address address;

readonly
attribute String addresses;

}

属性:

(1)、coords:
(Coordinates 类型 )地理坐标信息,包含经纬度、海拔、速度等消息

(2)、coordsType:
(String 类型 )获取到地理坐标新闻的坐标系类型,可取以下坐标系类型:
“gps”:表示WGS-84坐标系; “gcj02”:表示国测局经纬度坐标系;
“bd09”:表示百度墨卡托坐标系; “bd09ll”:表示百度经纬度坐标系。

(3)、timestamp:
(Number 类型
)获取到地理坐标的小时戳音讯,时间戳值为从壹玖陆柒年5月2二十三日现今的飞秒数。

(4)、address:
(Address 类型
)获取到地理地方对应的地方音信,获取地址新闻必要连接到服务器实行解析,所以会损耗越来越多的财富,若是不供给取得地址音讯可通过安装PositionOptions参数的geocode属性值为false防止获取地址音讯。
要是没有拿走到地点音讯则重临undefined。平台支撑Android – 2.3+ (辅助):
使用系统稳定模块无法取得地点音讯。iOS – 5.1+ (支持):
系统定点模块也帮忙获取地方新闻。

(5)、addresses:
(String 类型
)获取完整地址描述信息。如果没有得到到地点新闻则再次回到undefined。平台支撑Android

  • 2.3+ (协理): 使用系统稳定模块不可能获得地点音信。iOS – 5.1+ (协助):
    系统定点模块也支持获取地方新闻。

2.贰 、Address: JSON对象,地址新闻

interface
Address {

readonly
attribute String country;

readonly
attribute String province;

readonly
attribute String city;

readonly
attribute String district;

readonly
attribute String street;

readonly
attribute String poiName;

readonly
attribute String postalCode;

readonly
attribute String cityCode;

}

属性:

(1)、country:
(String 类型 )国家。如“中中原人民共和国”,假设不能够获得此音信则再次来到undefined。

(2)、province:
(String 类型
)省份称号。如“法国首都市”,假使不能获得此音信则再次回到undefined。

(3)、city:
(String 类型
)城市称号。如“Hong Kong市”,如若一点都不大概获得此音信则再次来到undefined。

(4)、district:
(String 类型
)区(县)名称。如“东昌区”,即便不能够得到此音信则重回undefined。

(5)、street:
(String 类型
)街道和门牌消息。如“酒仙桥路”,假若不或许赢得此音信则再次来到undefined。

(6)、poiName:
(String 类型
)POI新闻。如“电子城.国际电子总部”,即使不可能获取此消息则再次来到undefined。

(7)、postalCode:
(String 类型
)邮政编码。如“一千16”,要是不能够获取此音讯则重临undefined。

(8)、cityCode:
(String 类型
)城市代码。如“010”,若是不可能赢得此音信则重临undefined。

2.叁 、Coordinates: JSON对象,地理坐标音讯

interface
Coordinates {

readonly
attribute double latitude;

readonly
attribute double longitude;

readonly
attribute double altitude;

readonly
attribute double accuracy;

readonly
attribute double altitudeAccuracy;

readonly
attribute double heading;

readonly
attribute double speed;

}

属性:

(1)、latitude:
(Number 类型 )坐标纬度值。数据类型对象,地理坐标中的纬度值。

(2)、longitude:
(Number 类型 )坐标经度值。数据类型对象,地理坐标中的经度值。

(3)、altitude:
(Number 类型
)海拔消息。数据类型对象,要是一点都不大概获得此消息,则此值为空(null)。

(4)、accuracy:
(Number 类型
)地理坐标音讯的精确度音信。数据类型对象,单位为米,其有效值必须大于0。

(5)、altitudeAccuracy:
(Number 类型
)海拔的精确度音信。数据类型对象,单位为米,其有效值必须大于0。若是不可能赢得海拔音讯,则此值为空(null)。

(6)、heading:
(Number 类型
)表示设备移动的大方向。数据类型对象,范围为0到360,表示相对李碧华北方向的角度。借使不大概获得此新闻,则此值为空(null)。假若设备尚未运动则此值为NaN。

(7)、speed:
(Number 类型
)表示设备移动的速度。数据类型对象,单位为米每秒(m/s),其有效值必须大于0。借使无法取得速度音信,则此值为空(null)。

2.④ 、PositionOptions: JSON对象,监听设备地点消息参数

属性:

(1)、enableHighAccuracy:
(Boolean 类型
)是不是高精确度获取地点新闻。高精度获取表示需求利用愈多的系统财富,暗中认可值为false。

(2)、timeout:
(Number 类型
)获取地方音信的逾期时间。单位为阿秒(ms),暗中同意值为然则期。如若在钦点的时光内没有收获到岗位新闻则触发错误回调函数。

(3)、maximumAge:
(Number 类型
)获取地点新闻的缓存时间。单位为微秒(ms),私下认可值为0(马上更新获取)。要是设备缓存的职位音讯抢先内定的缓存时间,将另行更新地方新闻后再回去。

(4)、provider:
(String 类型 )优先利用的定势模块。可取以下供应者:
“system”:表示系统稳定模块,帮衬wgs84坐标系;
“baidu”:表示百度永恒模块,协理gcj02/bd09/bd09ll坐标系;
“amap”:表示高德定位模板,协理gcj02坐标系。
私下认可值按以下优先顺序获取(amap>baidu>system),若钦点的provider不设有或无效则赶回错误回调。
注意:百度/高德定位模块须要配备百度/高德地图相关参数才能健康使用。平台协助Android

  • 2.2+ (支持),iOS – 4.5+ (帮忙):
    provider为“baidu”时,仅帮助bd09ll坐标系,暂不扶助高德定位模块。

[html] view
plain

copy
print?

  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4. <meta charset=”utf-8″>  
  5. <title>Geolocation Example</title>  
  6. <script type=”text/javascript” >  
  7. // 扩大API加载实现后调用onPlusReady回调函数  
  8. document.addEventListener( “plusready”, onPlusReady, false );  
  9. // 扩大API加载完毕,今后得以健康调用扩大API  
  10. function onPlusReady() {  
  11. // 使用百度地图地位模块获取地点消息  
  12. plus.geolocation.getCurrentPosition( function ( p ) {  
  13. alert( “Geolocation\nLatitude:” + p.coords.latitude + “\nLongitude:” + p.coords.longitude + “\nAltitude:” + p.coords.altitude );  
  14. }, function ( e ) {  
  15. alert( “Geolocation error: ” + e.message );  
  16. },{provider:’baidu’});  
  17. }  
  18. </script>  
  19. </head>  
  20. <body >  
  21. </body>  
  22. </html>  




    Geolocation Example




 

(5)、coordsType:
(String 类型 )钦点获取的固化数据坐标系类型。可取以下坐标系类型:
“wgs84”:表示WGS-84坐标系; “gcj02”:表示国测局经纬度坐标系;
“bd09”:表示百度墨卡托坐标系; “bd09ll”:表示百度经纬度坐标系;
provider为“system”时,私下认可使用“wgs84”类型;provider为“baidu”是,默许使用“bd09ll”类型。
要是设置的坐标系类型provider不支持,则赶回错误。

(6)、geocode:
(Boolean 类型
)是或不是解析地址消息。解析的地址信息保存到Position对象的address、addresses属性中,true表示解析地址音信,false表示不解析地址音信,重临的Position对象的address、addresses属性值为undefined,暗许值为true。
假诺条分缕析地址音信失利则赶回的Position对象的address、addresses属性值为null。

2.五 、GeolocationError: JSON对象,定位错误音讯

interface
GeolocationError {

const Number
PERMISSION_DENIED = 1;

const Number
POSITION_UNAVAILABLE = 2;

const Number
TIMEOUT = 3;

const Number
UNKNOWN_ERROR = 4;

readonly
attribute Number code;

readonly
attribute String message;

}

常量:

PERMISSION_DENIED:
(Number 类型
)访问权限被拒绝。系统不容许程序获得一定效率,错误代码常量值为1。

POSITION_UNAVAILABLE:
(Number 类型
)地点音信不可用。不能取得实惠的岗位音讯,错误代码常量值为2。

TIMEOUT:
(Number 类型
)获取地方音信超时。不能在钦点的日子内取得位置音讯,错误代码常量值为3。

UNKNOWN_E大切诺基ROPAJERO:
(Number 类型
)未知错误。其余未知错误造成力不从心获得地方新闻,错误代码常量值为4。

属性:

code:
(Number 类型 )错误代码。取值范围为GeolocationError对象的常量值。 

message:
(String 类型 )错误描述新闻。详细错误描述新闻。

叁 、回调方法

3.壹 、GeolocationSuccessCallback: 获取装备地方信息成功的回调函数

void
onSuccess( position ) {

// Get
Position code.

}

参数:position: (
Position ) 必选 设备的地理位置新闻,参考Position

返回值:void
: 无

示例:

[html] view
plain

copy
print?

  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4. <meta charset=”utf-8″>  
  5. <title>Geolocation Example</title>  
  6. <script type=”text/javascript” >  
  7. // 扩充API加载达成后调用onPlusReady回调函数  
  8. document.addEventListener( “plusready”, onPlusReady, false );  
  9. // 扩充API加载完结,以往得以健康调用增加API  
  10. function onPlusReady() {  
  11. plus.geolocation.getCurrentPosition( function ( p ) {  
  12. alert( “Geolocation\nLatitude:” + p.coords.latitude + “\nLongitude:” + p.coords.longitude + “\nAltitude:” + p.coords.altitude );  
  13. console.log( “Geolocation info: ” + JSON.stringify(p) );  
  14. }, function ( e ) {  
  15. console.log(“Gelocation Error: code – “+e.code+”; message – “+e.message);  
  16. } );  
  17. }  
  18. </script>  
  19. </head>  
  20. <body >  
  21. </body>  
  22. </html>  




    Geolocation Example




 

3.① 、GeolocationErrorCallback: 获取装备地点新闻退步的回调函数

function
void onGeolocationError( GeolocationError error ) {

// Handle
error

var code =
error.code; // 错误编码

var message
= error.message; // 错误描述新闻

}

参数:

error: (
GeolocationError ) 必选
获取地方操作的错误消息,可经过error.code(Number类型)获取错误编码;
可透过error.message(String类型)获取错误描述新闻。

返回值:void
: 无

示例:

[html] view
plain

copy
print?

  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4. <meta charset=”utf-8″>  
  5. <title>Geolocation Example</title>  
  6. <script type=”text/javascript” >  
  7. // 扩展API加载完成后调用onPlusReady回调函数  
  8. document.addEventListener( “plusready”, onPlusReady, false );  
  9. // 增加API加载实现,未来得以健康调用扩张API  
  10. function onPlusReady() {  
  11. plus.geolocation.getCurrentPosition( function ( p ) {  
  12. console.log( “Geolocation\nLatitude:” + p.coords.latitude + “\nLongitude:” + p.coords.longitude + “\nAltitude:” + p.coords.altitude );  
  13. }, function ( e ) {  
  14. console.log(“Gelocation Error: code – “+e.code+”; message – “+e.message);  
  15.         switch(e.code) {  
  16.           case e.PERMISSION_DENIED:  
  17.               alert(“User denied the request for Geolocation.”);  
  18.               break;  
  19.           case e.POSITION_UNAVAILABLE:  
  20.               alert(“Location information is unavailable.”);  
  21.               break;  
  22.           case e.TIMEOUT:  
  23.               alert(“The request to get user location timed out.”);  
  24.               break;  
  25.           case e.UNKNOWN_ERROR:  
  26.               alert(“An unknown error occurred.”);  
  27.               break;  
  28.           }  
  29. } );  
  30. }  
  31. </script>  
  32. </head>  
  33. <body >  
  34. </body>  
  35. </html>  

相关文章