2012-01-08 89 views
0
navigator.geolocation.getCurrentPosition(
     function(pos) { 
     var fullpos = new google.maps.LatLng(pos.coords.latitude, pos.coords.longitude); 
     computePartners(fullpos); 
     } 
    ); 

是我所拥有的。它执行computePartners(),如果客户端允许访问他知道他在哪里(获取客户的物理位置)。但是如果没有,我想让输出成为警报('错误'),例如。我怎样才能做到这一点?谷歌地理api:如何处理客户端拒绝许可

回答

3

我使用此代码进行地理定位:

if(navigator.geolocation) { 
    navigator.geolocation.getCurrentPosition(function(position) { 
     // ok   
    }, function(error) { 
     if(error.code == 0){ 
     // unknown error 
     } else if(error.code == 1) { 
     // permission denied 
     } else if(error.code == 2) { 
     // position unavailable 
     } else if(error.code == 3) { 
     // timeout 
     } 
     console.log(error.message); 
    }, { 
     enableHighAccuracy: true, 
     maximumAge: 30000, 
     timeout: 10000  
    }); 
} else { 
     // browser do not support geolocation 
} 
+0

好的用户接受和brwoser部分工作正常。但不是用户拒绝,我试图在那里发出警报()。然后我访问我的网站,当它问我说按“不是现在”,什么也没有发生.. – Karem 2012-01-08 23:50:38

+0

这很奇怪 - [文档](http://developer.mozilla.org/En/Using_geolocation)表示,因为我有书面。也许你必须像[某人建议]设置超时参数(http://stackoverflow.com/questions/3397585/navigator-geolocation-getcurrentposition-sometimes-works-sometimes-doesnt)?哪个浏览器使用使用? – hamczu 2012-01-08 23:55:44

+0

尝试在铬..现在工作!谢谢 – Karem 2012-01-09 00:01:31