js获取不到地理位置

oInput.onclick = function(){
        
        navigator.geolocation.getCurrentPosition(function(position){
            
            oT.value += '经度:' + position.coords.longitude+'\n';
            oT.value += '纬度 :' + position.coords.latitude+'\n';
            oT.value += '准确度 :' + position.coords.accuracy+'\n';
            oT.value += '海拔 :' + position.coords.altitude+'\n';
            oT.value += '海拔准确度 :' + position.coords.altitudeAcuracy+'\n';
            oT.value += '行进方向 :' + position.coords.heading+'\n';
            oT.value += '地面速度 :' + position.coords.speed+'\n';
            oT.value += '时间戳:' + new Date(position.timestamp)+'\n';
                
            
        },function(err){
            
            //err.code // 失败所对应的编号
            alert( err.code );
        });

求问,为什么在我的电脑上获取不到地理位置,地理权限已经开了。。谢谢!

阅读 6.2k
5 个回答

1) 换手机试试吧,手机上有GPS芯片,大部分电脑没有GPS芯片,而且最好在室外访问这个URL,原因简单,室外可以跟GPS卫星更容易建立连接
2) 对于没有GPS的电脑,一般浏览器会配合采用网络定位,需要翻墙,所以可能你需要设置一个代理服务器。
一般会设置一个超时,(信号不好的时候,可能跟GPS卫星连接建立超时)

var options = {
  enableHighAccuracy: true,
  timeout: 5000,
  maximumAge: 0
};

function success(pos) {
  var crd = pos.coords;
  console.log('Latitude : ' + crd.latitude);
  console.log('Longitude: ' + crd.longitude);
  console.log('More or less ' + crd.accuracy + ' meters.');
};

function error(err) {
  console.warn('ERROR(' + err.code + '): ' + err.message);
};

navigator.geolocation.getCurrentPosition(success, error, options);
navigator.geolocation.getCurrentPosition (
    locationGetSucc, locationGetErr, geolocationOptions);
var geolocationOptions = {
   enableHighAccurary: false,
   maximumAge:         30000,
   timeout:            30000
};

电脑上被墙了吧 毕竟要用 Google 的服务

地理位置基本都是在手机上用的,电脑上的不准

你用的是Google吧,Google被墙了是获取不到的,试一试IE和firefox。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题