目前PC浏览器支持情况:
Firefox 3.5+
Chrome 5.0+
Safari 5.0+
Opera 10.60+
Internet Explorer 9.0+
手机支持情况:
Android 2.0+
iPhone 3.0+
Opera Mobile 10.1+
Symbian (S60 3rd & 5th generation)
BlackBerry OS 6
Maemo
检测浏览器是否支持:
navigator.geolocation用于获取基于浏览器的当前用户地理位置,提供了3个方法:
void getCurrentPosition(onSuccess,onError,options); 获取用户当前位置 int watchCurrentPosition(onSuccess,0); line-height:1.5!important">持续获取当前用户位置 void clearWatch(watchId); watchId 为watchCurrentPosition返回的值 //取消监控
onSuccess方法成功时调用的(必选),onError方法失败是调用的(可选),options其他参数(可选)
options:
options = { enableHighAccuracy, boolean 是否要求高精度的地理信息 timeout, //表示等待响应的最大时间,默认是0毫秒,表示无穷时间 maximumAge /应用程序的缓存时间 }
onsuccess方法中会返回position对象,通过这个对象可以获取地理位置的相关信息
简单的小李子
<script> var x=document.getElementById("demo"); function getLocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(showPosition); } else{x.innerHTML="该浏览器不支持获取地理位置。";} } function showPosition(position) { x.innerHTML="Latitude: " + position.coords.latitude + "<br>Longitude: " + position.coords.longitude; } </script>
实例二:
<!DOCTYPE html>
<htmlhead>
Meta charset="utf-8"/>
title>基于浏览器的HTML5查找地理位置</>
<!-- 百度API -->
script src="http://api.map.baidu.com/api?v=1.2" type="text/javascript"></script>
>
function getLocation(){
var options={
enableHighAccuracy:true,maximumAge:1000
}
if(navigator.geolocation){
//浏览器支持geolocation
navigator.geolocation.getCurrentPosition(onSuccess,options);
}else{
浏览器不支持geolocation
}
}
成功时
onSuccess(position){
返回用户位置
经度
longitude position.coords.longitude;
纬度
latitude position.coords.latitude;
使用百度地图API
创建地图实例
map =new BMap.Map("container);
创建一个坐标
point BMap.Point(longitude,latitude);
地图初始化,设置中心点坐标和地图级别
map.centerandZoom(point,15);
}
失败时
onError(error){
switch(error.code){
case 1:
alert(位置服务被拒绝);
break;
2暂时获取不到位置信息3获取信息超时4:
alert(未知错误;
}
}
window.onloadgetLocation;
>
body>
div id="container" style="width:600px;height:600px"div>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。