千家信息网

HTML5中扩展地理信息服务及地理位置API的学习是怎样的

发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,HTML5中扩展地理信息服务及地理位置API的学习是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。现在比较火的一类服务叫做基于位置
千家信息网最后更新 2025年01月24日HTML5中扩展地理信息服务及地理位置API的学习是怎样的

HTML5中扩展地理信息服务及地理位置API的学习是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

现在比较火的一类服务叫做基于位置的服务(location-based service, LBS),这一类服务就是企业利用某点(例如用户所在的位置)坐标附近的区域提供服务的信息,比如常见的地图相关服务。在HTML5中,加入了新的地理位置API用来确定和分享地理位置。
隐私申明
在与远程Web服务器共享物理位置时,隐私是一个需要关注的问题。因此,地理位置API会要求用户先提供权限,然后Web应用程序才能访问位置信息。首次访问请求地理位置数据的网页时,浏览器将显示一个通知栏,提示提供对用户位置的访问权限。按照浏览器的提示,选择相关的授权即可。
如果用户未授予权限,则不会向 Web 应用程序提供位置信息。调用相关API不会触发成功回调。
检查浏览器的支持情况
地理位置API在主流的浏览器的最新版中都支持了,但是为了兼容老的浏览器,还是要检查一下。如果地理位置 API 不可用,则 window.navigator.geolocation 将为 null,如下所示:

代码如下:


function show_islocationenabled()
{
var str = "No, geolocation is not supported.";
if (window.navigator.geolocation) {
str = "Yes, geolocation is supported.";
}
alert( str );
}


Geolocation API基于navigator这一全局对象的一个新属性:navigator.geolocation,该对象提供了一些关于访问者的浏览器和系统的有用信息。Geolocation的信息可以通过许多手段获得:比如基站、web的数据库或是GPS等。使用不同的方式获取到的Geolocation信息精度也是不一样的,通常情况下,通过GPS获得的最为准确(移动平台上使用GPS最多,PC平台上基本都是靠网络数据)。偶然情况下,在一些位置上,你有可能不能获得明确的地理位置读数或是一点数据都接收不到。
定位当前位置
  使用navigator.geolocation的getCurrentPosition()方法获取用户的当前位置,这个方法只获取一次位置的信息。当该方法被脚本调用时,方法以异步的方式来尝试获取宿主设备的当前位置。

代码如下:


方法签名:getCurrentPosition(geolocationSuccessCallback,[geolocationErrorCallback,geolocationOptions]);
  1. geolocationSuccessCallback:获取当前位置成功后的回调(必需的)
  2. geolocationErrorCallback. 有错误发生时使用的回调(可选的)
  3. geolocationOptions. 地理位置选项(可选的)


处理位置信息
getCurrentPositon()方法获得当前位置成功后会将位置信息保存到一个Position对象中,然后把这个对象作为参数来执行geolocationSuccessCallback这一回调。在这个回调函数中,你可以任意处置这个对象中包含的信息。
Position对象有两个属性:timestamp和coords。timestamp属性表示地理位置数据的创建时间,coords属性表示地理位置信息,又包含七个属性:

代码如下:


. coords.latitude:估计纬度
. coords.longitude:估计经度
. coords.altitude:估计高度
. coords.accuracy:所提供的以米为单位的经度和纬度估计的精确度
. coords.altitudeAccuracy:所提供的以米为单位的高度估计的精确度
. coords.heading: 宿主设备当前移动的角度方向,相对于正北方向顺时针计算
. coords.speed:以米每秒为单位的设备的当前对地速度


一般的,这些属性中有三项是保证有的:coords.latitude、coords.longitude和coords.accuracy,其余的返回null;这取决于设备的能力和其所采用的后端定位服务器。而且,heading和speed属性可以基于用户之前的位置计算出来。
处理错误
执行getCurrentPositon()方法时如果有错误发生的话,则该方法传递一个PositionError对象给geolocationErrorCallback回调。
设置地理位置选项
你可以设置geolocationOptions的三个属性:

代码如下:


enableHighAccuracy:如果设备支持高精度的话,这个选项表示是否启用高精度。
timeout:查询超时时间
maximumAge: 缓存的位置最大的时间数,在这一时间段内缓存可被使用。


看下面完整的例子:

代码如下:





Click the button to get your position:








这个例子获取到当前设备所在的地理位置并显示到Google地图中。当然你可以使用百度地图API中的静态图版来改造这个例子。百度地图API参看后面的实用参考中的链接。
开启/取消持续定位
使用navigator.geolocation的watchPosition()方法可以定期轮询用户的位置,查看用户的位置是否发生改变。这个方法有三个参数:这三个参数和getCurrentPosition()方法一样,一个成功后的回调,一个失败后的回调,和一个获取位置信息的选项;这个方法有一个返回值watchID,用于取消持续定位。
使用navigator.geolocation的clearWatch()方法可以终止正在进行的watchPosition(),该方法只带一个参数watchID。
看下面的例子:

代码如下:





Geolocation API Example: Listening for Location Updates












看完上述内容,你们掌握HTML5中扩展地理信息服务及地理位置API的学习是怎样的的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

位置 地理 方法 信息 地理位置 服务 属性 用户 对象 代码 浏览器 设备 浏览 数据 成功 例子 参数 地图 时间 定位 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络服务器配置与管理视频课程 网络安全等级保护相关资质 公司服务器坏了要修多久 路由器CSDP服务器 信息网络安全检查工作总结 求生之路怎么查看服务器的ip 网络技术助力中小企业发展 广州新华互联网科技学校是职高吗 教科版网络技术应用教学设计 数据库物理结构的元数据 物理服务器架设方案 怎么用服务器建站 软件开发概论书籍 重要时期网络安全工作要点 苏州库力索法 软件开发 思科模拟器服务器给电脑分配地址 centos7 服务器搭建 回收机房设备服务器工作站 打印机服务器脱机啥意思 江苏大规模软件开发代理品牌 永康市金桔网络技术有限公司 qq运动s健康数据库 客车服务器 数据库技术的实际应用例子 高级数据库系统 rust怎么找大地图服务器 坐标岛国际服务器怎么下载 乡宁租房软件开发 地名档案数据库 河南软件开发价钱是多少
0