标签:版本 imu navig 高度 www location logs rand ros
前 言
Geolocation API(地理位置应用程序接口)提供了一个可以知道浏览器用户当前位置的方法。且目前看来浏览器的支持情况还算不错(因为新版本的IE支持了该API),这使得在不久之后就可以使用这一浏览器内置的API了。HTML5 Geolocation仅仅是用来检索定位信息的API,至于底层是如何定位的他也不知道,他就相当于一个传信的。
1.检测浏览器的支持性。 |
在HTML5中,通过window.navigator对象下新增geolocation属性来判断浏览器的兼容性。
function geolocationSupport()
{
if(!navigator.geolocation)
{
alert(‘当前浏览器不支持HTML5 Geolocation‘);
}
else
{
alert(‘当前浏览器支持HTML5 Geolocation‘);
}
}
geolocationSupport();
2.获取当前地理位置 |
我们使用getCurrentPosition(success(position),error(err),options)方法来获取当前用户的地理位置。
success(position)回调函数是在获取到地理信息时调用的,其中的position参数是一个对象包括: latitude(纬度)、longitude(经度)
accuracy(纬度和经度的精度,以米为单位)
latitudeAccuracy(海拔高度的精度,以米为单位)
heading(设备的前进方向),speed(设备的前进速度以单位m/s)
timestamp(获取位置的时间)。
error(err)回电函数是在获取地理位置失败时调用的,其中err参数有俩个属性:
code和message,code{1:表示用户拒绝了定位服务,2:获取不到位置信息,3:获取信息超时错误},message是字符串,表示错误信息。
opations是一些可选属性的列表包括: enableHighAccuracy(是否要求高精度的地理位置信息),值为true或false。
timeout(对地理信息获取操作做一个超时限制,如果超时,则返回错误),值为数字,单位为毫秒。
maximumAge(对地理位置信息进行缓存的有效时间做一个限制),值为数字,单位为毫秒。
window.onload = function() {
var x,y;
if(navigator.geolocation) {
document.getElementById("ip").innerHTML = "您当前的位置";
// 百度地图API功能
var map = new BMap.Map("container");
var point = new BMap.Point(x,y);
map.centerAndZoom(point,12);
var geolocation = new BMap.Geolocation();
geolocation.getCurrentPosition(function(r){
if(this.getStatus() == BMAP_STATUS_SUCCESS){
var mk = new BMap.Marker(r.point);
map.addOverlay(mk);
map.panTo(r.point);
}
else {
alert(‘failed‘+this.getStatus());
}
},{enableHighAccuracy: true})
return;
}
};
引入JS:
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=134db1b9cf1f1f2b4427210932b34dcb"></script>
3.清除地理位置监听和清除监听 |
watchPosition 跟上面的getCurrentPosition 是同样的原理,参数,返回值。只不过它是个定时器版本的。
clearWatch就是来清除watchPosition 的。
标签:版本 imu navig 高度 www location logs rand ros
原文地址:http://www.cnblogs.com/ljr001/p/7668763.html