调用地理位置API
function get_location(){
if(Modernizr.geolocation){
navigator.geolocation.getCurrentPosition(show_map,handle_error,{enableHighAccuracy:true,timeout:200,maximumAge:50000});
//getCurrentPosition()会触发浏览器弹出信息条
//enableHighAccuracy:是否开启高精度定位,timeout:web应用获取用户位置信息最长等待时间(网络请求时间),maximumAge:设备将缓存位置信息快速返回给web应用
}else{
//浏览器没有提供原生支持,用Gears
}
}
function show_map(position){
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
}
function handle_error(err){
if(err.code==1){
//用户说不!
//permisiion_denide(1) position_unvailable(2) timeout(3) unknown_error(0)
}
}
watchPosition()方法结构和getCurrentPosition()方法相同。不同在于,无需主动获取用户位置信息。
IE不支持W3C标准的地理位置API
<script>尽量不要放到<head>里,会减慢页面的加载速度。
<script src="gears_init.js"></script>
<script src="geo.js"></script> //目前不支持watchPosition()方法
if(geo_position_js,init()){
geo_position_js.getCurrentPosition(geo_success,geo_error);
}
function geo_success(p){
alert("Found you at latitude" + p.coords.latitude + ", longitude " + p.coords.longitude);
}