一、 PhoneGap Geolocation 对象介绍

  1、使应用程序可以访问地理位置信息。geolocation 对象提供了对设备 GPS 传感器的访问。Geolocation 提供设备的位置信息,例如经度和纬度。

  2、位置信息的常见来源包括全球定位系统(GPS),以及通过诸如 IP 地址、RFID、WiFi 和蓝牙的 MAC 地址、和 GSM/CDMA 手机 ID 的网络信号所做的推断。

  3、不能保证该 API 返 回的是设备的真实位置信息。这个 API 是基于 W3C Geo location API Specification 实现的。

  4、有些设备已经提供 了对该规范的实现,对于这些设备采用内置实现而非使用 PhoneGap 的实现。

  5、对于没有地理位置支持的设 备,PhoneGap 提供了统一的支持。

  6、方法

    geolocation.getCurrentPosition

    geolocation.watchPosition

    geolocation.clearWatch

  7、参数

    geolocationSuccess

    geolocationError

    geolocationOptions

二、 geolocation.getCurrentPosition

  1、返回设备的当前位置,一个位置对象。

    navigator.geolocation.getCurrentPosition(geolocationSuccess, [geolocationError], [geolocationOptions]);

 2、参数

    geolocationSuccess:通过当前位置的回调。

    geolocationError:(可选)如果发生错误,执行的回调。

    geolocationOptions:(可选)获取地理位置的选项,例如获取频率。它一般作为一个 JSON 对象,目前可设 置的属性如下

      geolocationOptions{ enableHighAccuracy:提供一个表明应用程序希望获得最佳可能结果的提示。

      timeout:允许的以毫秒为单位的最大时间间隔,该时间间隔是从 geolocation.getCurrentPosition 或 geolocation.watchPosition 的调用到相应的

      geolocationSuccess 回调函数被调用,单位是毫秒。

      maximumAge:保留上次缓存的最长时间,单位是毫秒。可以理解为获取地理位置信息的频率

  3、注意: 除非 enableHighAccuracy 选项被设定为 true,否则 Android 2.X 模拟器不会返回一个地理位置结果 例如:

    { maximumAge: 3000, timeout: 5000, enableHighAccuracy: true }; }

三、 包含当前地理位置坐标信息的Position对象描述

    1、Position 包含由 geolocation API 创建的 Position 坐标信息。

        coords:一系列地理坐标。(Coordinates 类型)

        timestamp:以毫秒为单位的 coords 的创建时间戳。

    2、PositionError 当发生错误时,一个 PositionError 对象会传递给 geolocationError 回调函数。

      code:一个在下面常量列表中定义的错误代码。

      message:说明错误细节的错误信息。

        PositionError.PERMISSION_DENIED:权限被拒绝

        PositionError.POSITION_UNAVAILABLE:位置不可用

        PositionError.TIMEOUT:超时

    3、 Coordinates 一系列用来描述位置的地理坐标信息的属性。

      latitude:以十进制表示的纬度。

      longitude:以十进制表示的经度。

      altitude:位置相对于椭圆球面的高度,单位为米。 海拔高度   

      accuracy:以米为单位的纬度和经度坐标的精度水平。

      altitudeAccuracy:以米为单位的高度坐标的精度水平。(Android 设备上不支持该属性,返回值总是 nul)

      heading:运动的方向,通过相对正北做顺时针旋转的角度指定。

      speed:以米/秒为单位的设备当前地面速 度。

四、获取地理位置信息

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>phonegap_device_network_notification01</title>
<link href="../jquery.mobile-1.3.2.css" rel="stylesheet" type="text/css"/>
<script src="../jquery.js" type="text/javascript"></script>
<script src="../jquery.mobile-1.3.2.js" type="text/javascript"></script>
<script src="../cordova.js" type="text/javascript"></script>
<script type="text/javascript" charset="utf-8"> // 等待PhoneGap加载
document.addEventListener("deviceready", onDeviceReady, false); // 加载完成
function onDeviceReady() {
navigator.geolocation.getCurrentPosition(onSuccess, onError,{ maximumAge: 3000, timeout: 100000, enableHighAccuracy: true });
} // onSuccess 回调函数
// 接收包含当前地理位置坐标信息的Position对象
function onSuccess(position) {
alert(position.coords.latitude);
var element = document.getElementById('geolocation');
element.innerHTML = '纬度: ' + position.coords.latitude + '<br />' +
'经度: ' + position.coords.longitude + '<br />' +
'海拔高度: ' + position.coords.altitude + '<br />' +
'精确度: ' + position.coords.accuracy + '<br />' +
'海拔高度精确度: ' + position.coords.altitudeAccuracy + '<br />' +
'运动方向: ' + position.coords.heading + '<br />' +
'速度: ' + position.coords.speed + '<br />' +
'时间戳: ' + new Date(position.timestamp) + '<br />';
} // onError 回调函数, 接收包含具体错误信息的PositionError 对象
function onError(error) {
alert('错误代码: ' + error.code + '\n' + '详细信息: ' + error.message + '\n');
} </script> </head>
<body>
<div data-role="page">
<div data-role="header">
<h1>PhoneGap100实战</h1>
</div>
<div data-role="content">
<p id="geolocation">定位中。。。</p>
</div>
<div data-role="footer">
<h4>&nbsp;</h4>
</div>
</div> </body>
</html>

五、 动态获取地理位置信息

  1. geolocation.watchPosition 定期获取设备的地理位置信息

      navigator.geolocation.watchPosition(onSuccess, onError, options);

   2. navigator.geolocation.clearWatch 停止定期获取设备的地理位置信息

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>phonegap_device_network_notification01</title>
<link href="../jquery.mobile-1.3.2.css" rel="stylesheet" type="text/css"/>
<script src="../jquery.js" type="text/javascript"></script>
<script src="../jquery.mobile-1.3.2.js" type="text/javascript"></script>
<script src="../cordova.js" type="text/javascript"></script>
<script type="text/javascript" charset="utf-8"> //等待PhoneGap加载
document.addEventListener("deviceready", onDeviceReady, false); var watchID = null; //加载完成
function onDeviceReady() {
// Update every 3 seconds
var options = { frequency: 3000 };
watchID = navigator.geolocation.watchPosition(onSuccess, onError, options);
} // onSuccess 回调函数
// 接收包含当前地理位置坐标信息的Position对象
function onSuccess(position) {
var element = document.getElementById('geolocation');
element.innerHTML = '纬度: ' + position.coords.latitude + '<br />' +
'经度: ' + position.coords.longitude + '<br />' +
'<hr />' + element.innerHTML;
} //取消获取地理位置信息
function clearWatch() {
if (watchID != null) {
navigator.geolocation.clearWatch(watchID);
watchID = null;
}
} // onError 回调函数, 接收包含具体错误信息的PositionError 对象
function onError(error) {
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
} </script> </head>
<body>
<div data-role="page">
<div data-role="header">
<h1>PhoneGap100实战</h1>
</div>
<div data-role="content">
<p id="geolocation">监测地理位置信息中。。。</p>
<button onclick="clearWatch();">取消监测地理位置信息</button>
</div>
<div data-role="footer">
<h4>&nbsp;</h4>
</div>
</div> </body>
</html>

PhoneGap Geolocation 获取地理位置 api的更多相关文章

  1. PhoneGap Geolocation结合百度地图api获取地理位置api

    一.使用百度地图API 1.地址:http://developer.baidu.com/map/ 2.在js DEMO中获取反地址解析的DEMO 3.修改这个DEMO的密钥,去创建应用就能创建密钥,然 ...

  2. Html5 Geolocation获取地理位置信息(转)

    Html5中提供了地理位置信息的API,通过浏览器来获取用户当前位置.基于此特性可以开发基于位置的服务应用.在获取地理位置信息前,首先浏览器都会向用户询问是否愿意共享其位置信息,待用户同意后才能使用. ...

  3. Html5 Geolocation获取地理位置信息

    Html5中提供了地理位置信息的API,通过浏览器来获取用户当前位置.基于此特性可以开发基于位置的服务应用.在获取地理位置信息前,首先浏览器都会向用户询问是否愿意共享其位置信息,待用户同意后才能使用. ...

  4. HTML5 中 Geolocation 获取地理位置的原理是什么?

    http://www.zhihu.com/question/20473051?sort=created geolocation的位置信息来源包括GPS.IP地址.RFID.WIFI和蓝牙的MAC地址. ...

  5. html5获取地理位置信息API

    html5获取地理位置信息API 在HTML5中,可以看下如何使用Geolocation API来获得用户的地理位置信息,如果该浏览器支持的话,且设备具有定位功能,就能够直接使用这组API来获取当前位 ...

  6. 获取定位,苹果IOS10以上不支持h5的geolocation获取不到地理位置信息解决办法

    今天开发应用,获取地理位置,最先采用H5的Geolocation的方法来获取地理位置,经过测试发现安卓的机子可以,但是IOS的就是不行,一查资料才知道:10.0苹果版本需要协议为https的才可以获取 ...

  7. Vue 通过调用百度API获取地理位置-经度纬度省份城市

    一.首先在百度api注册获得ak密钥 二.新建js文件,我命名为loadBMap.js,里面创建script,代码如下: /** * 加载地图 * @param {Function} callback ...

  8. 谷歌、腾讯、百度相应API批量获取地理位置坐标信息及其优缺点

    目录: 申请ak 批量获取地理位置 目的:通过给定的地理位置名称(如:北京市海淀区上地十街十号),获取经纬度信息. 1.申请ak 以百度Geocoding API为例:http://lbsyun.ba ...

  9. 百度api:根据经纬度获取地理位置信息

    调用百度api,根据经度和纬度获取地理位置信息,返回Json. C#代码: using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Syste ...

随机推荐

  1. 周记5——随机撒花特效、动态修改伪元素样式、contenteditable属性、手机端调试利器VConsole、浏览器端debug调试

    记录一些小零碎知识点,以便日后查看~ 1.随机撒花特效 教师节快到了,公司的产品提出一个需求:在IM(即时聊天)聊天界面弹出教师节的祝福“广告”,用户点击“发送祝福”按钮,聊天界面会随机撒花.这里的重 ...

  2. JSON跨域问题总结

    一.跨域问题的原因: 1 浏览器的检查 2 跨域 3 XMLHttpRequest请求二.跨域问题的解决: 1 禁止浏览器检查:使用dos命令,在启动浏览器的时候,加一个参数:chrome --dis ...

  3. Expression Blend实例中文教程(12) - 样式和模板快速入门Style,Template

    在上一篇,介绍了Visual State Manager视觉状态管理器,其中涉及到控件的样式(Style)和模板(Template),本篇将详细介绍样式(Style)和模板(Template)在Sil ...

  4. .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter

    dump文件相信有些朋友已经很熟悉了,dump文件的作用在于保存进程运行时的堆栈信息,方便日后排查软件故障,提升软件质量.关于dump分析工具windbg.adplus的文章更多了,如果您还不知道怎么 ...

  5. 第1天:jQuery效果

    1.jQuery 语法 jQuery 语法是为 HTML 元素的选取编制的,可以对元素执行某些操作. 基础语法是:$(selector).action() 美元符号定义 jQuery 选择符(sele ...

  6. 【转】mouseover和mouseenter的区别

    一.当绑定着两个事件的元素里面没有子元素的时候,这两个事件的触发效果是一致的: x=0; y=0; $(document).ready(function(){ $("div.over&quo ...

  7. Bzoj3105:[CQOI2013]新Nim游戏

    题面 传送门 Sol 也是拿出一些数,使剩下的异或起来不为\(0\) 而线性基内的数异或不出\(0\) 那么从大到小加到线性基内 然后中途为\(0\)了,就取走它 这样我们使最大的在线性基内,剩下的是 ...

  8. 原生JS的轮播图

    学习前端也有一小段时间了,当初在学习javascript的时候,练手的一个轮播图实例,轮播图也是挺常见的了. 着是通过获取图片偏移量实现的.也实现了无缝切换.还有一点问题就是没有加上图片切换的时候的延 ...

  9. (1-1)line-height的定义和行内框盒子模型

    (1-1)line-height的定义和与行内框盒子模型的关系 一.line-height的定义 line-height的定义: 行高,又称为两基线的距离.默认基线对齐(因为CSS所有*线:总之就是各 ...

  10. BootStrap:

    BootStrap: * 响应式的HTML,CSS,JS的框架. * 响应式设计: * 设计一套页面,适配不同的设备,在手机,PAD,PC端都能够正常浏览. * 响应式原理: * 使用CSS3的媒体查 ...