Javascripts地理定位 - 用户拒绝提供数据

时间:2015-10-02 14:22:18

标签: javascript browser geolocation

这个JS函数正常工作;但如果用户拒绝通过浏览器进行本地化,则不会。

我该如何修改?

function getPosition()
  {

  if (navigator.geolocation)
    {
    navigator.geolocation.getCurrentPosition(showmyPosition);
    }
  else
    {
    alert("Geolocation doesn't work"); 
    }
  }

function showmyPosition(position)
  { 
 document.location.href="/near?lat="+  position.coords.latitude +"&lng="+ position.coords.longitude +"";
  }   

2 个答案:

答案 0 :(得分:1)

navigation.geolocation不检查用户是否接受地理定位,它仅检查浏览器是否支持地理定位。

但是,您可以为getCurrentPosition提供错误回调,从中可以读取错误。请参阅下面的示例

function getPosition() {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(showmyPosition, errorCallback);
    }
    else {
       alert("Browser does not support geolocation");  
    }
}

function showmyPosition(position) {
    document.location.href = "/near?lat=" + position.coords.latitude + "&lng=" + position.coords.longitude + "";
}

function errorCallback(error) {
    if (error.code === 1) {
        alert("User denied geolocation");
    }
}

答案 1 :(得分:0)

如果用户不允许通过浏览器进行地理定位,则可以使用IP地址估算其位置。

您可以从http://ipinfodb.com

的API注册