基于 html5 geolocation来获取经纬度地址(copy)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了基于 html5 geolocation来获取经纬度地址(copy),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2140字,纯文字阅读大概需要4分钟。
内容图文
以前如果要获取互联网用户所在地都是根据用户的IP地址来获取地理位置,这样获取到的数据和真实数据有很大的偏差。为了获取更加精确的位置,可以使用了html5的geolocation来获取经纬度,然后再获取所在地理位置,如何获取,我在下面会说到。先说下基本概念。
Geolocation在的navigator 对象中,我们可以通过 navigator.geolocation 来使用它。不支持 geolocation 的浏览器并不包含这一对象,那么可以通过下面的代码来做能力检测,对不同的浏览器做不同的处理。在访问 geolocation 对象时,即调用 geolocation 下面的方法时,浏览器会弹出提示,询问用户是否许可网站提供的位置服务,只有在得到用户许可过后,服务才会继续,否则将被停止。
常用的navigator.geolocation对象有以下三种方法:
获取当前地理位置:navigator.geolocation.getCurrentPosition(success_callback_function, error_callback_function, position_options)
持续获取地理位置:navigator.geolocation.watchPosition(success_callback_function, error_callback_function, position_options)
清除持续获取地理位置事件:navigator.geolocation.clearWatch(watch_position_id)
参数position_options是配置项,由JSON格式传入:
enableHighAccuracy:true/false,它将告诉浏览器是否启用高精度设备,所谓的高精度设备包含但不局限于前面所提到的 GPS 和 WIFI,值为 true 的时候,浏览器会尝试启用这些设备,默认指为 true,在这种情况下,浏览器会尽可能地进行更为精确的查询,简单地说,如果用户有可用的 GPS 设备,会返回 GPS 设备的查询结果,IP 是最后的选择,对于移动设备来说,网络接入点(基站)或许成为另一个选择,对此我还没有完全了解,但根据测试,即时没有任何额外功能的手机,也能够得到更为精确的查询结果。
maximumAge:单位毫秒,告诉设备缓存时间,主要用于设备的省电或者节省带宽方面。
timeout:单位毫秒,超时事件,获取位置信息时超出设定的这个时长,将会触发错误,捕获错误的函数将被调用,并且错误码指向TIMEOUT。
var position_option = {
enableHighAccuracy:
true
,
maximumAge: 30000,
timeout: 20000
};
navigator.geolocation.getCurrentPosition(getPositionSuccess, getPositionError, position_option);
|
function getPositionSuccess( position ){
var lat = position.coords.latitude;
var lng = position.coords.longitude;
alert(
"您所在的位置: 纬度" + lat + ",经度" + lng );
if
(
typeof position.address !== "undefined" ){
var country = position.address.country;
var province = position.address.region;
var city = position.address.city;
alert(
‘ 您位于 ‘ + country + province + ‘省‘ + city + ‘市‘ );
}
}
|
coords其他返回信息:
coords.accuracy:返回经纬度的精度(米)
coords.speed :速度
coords.altitude :当前的高度,海拔(米)
coords.altitudeAccuracy:高度的精度(米)
coords.heading:朝向
function getPositionError(error) {
switch (error.code) {
case error.TIMEOUT:
alert(
"连接超时,请重试"
);
break
;
case error.PERMISSION_DENIED:
alert(
"您拒绝了使用位置共享服务,查询已取消"
);
break
;
case error.POSITION_UNAVAILABLE:
alert(
"获取位置信息失败"
);
break
;
}
}
|
原文:http://www.cnblogs.com/xingmeng/p/3993305.html
内容总结
以上是互联网集市为您收集整理的基于 html5 geolocation来获取经纬度地址(copy)全部内容,希望文章能够帮你解决基于 html5 geolocation来获取经纬度地址(copy)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。