地理位置错误检测

时间:2013-07-18 18:08:06

标签: javascript geolocation

我正在使用Geolocation,但我无法识别错误,无法提供替代方案。

我的HTML看起来像这样:

<button onclick="getLocation()">Get your location now</button>
<div id="google_canvas"></div>
<p id = 'error'></p>

我的脚本如下所示:

function getLocation(){
  if(navigator.geolocation) 
  {
    var map;
    var mapOptions = 
    {
      zoom: 13,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    }           
    map = new google.maps.Map(document.getElementById('google_canvas'), mapOptions);
    navigator.geolocation.getCurrentPosition(function(position) 
    {
      var geolocate = new google.maps.LatLng(position.coords.latitude, position.coords.longitude),latitude=document.getElementById("latitude"),longitude=document.getElementById("longitude");
      var infowindow = new google.maps.InfoWindow(
      {
        map: map,
        position: geolocate,
        content:
        ' * output content within map * '
      });

      map.setCenter(geolocate);
      latitude.value = position.coords.latitude;
      longitude.value = position.coords.longitude;
    });         
  } 

  else 
  {
    document.getElementById('error').innerHTML = 'No Geolocation Support';
  }

 };
google.maps.event.addListener(map, 'idle', function() {
});

我的IE9版本不支持Geolocation(我用他们自己的脚本尝试过他们的测试网站),但它没有给我任何错误或警告,如果我不允许在Firefox或Chrome中定位,我不会得到任何错误或警告。

有人可以帮忙吗?如果它无法运行,我可以提供替代方案,所以我不认为我需要查看错误代码这么多,但我确实需要能够检测到失败,所以我可以提供我的替代方案,但我的脚本中的错误部分不管怎么说都不会跑。

我的问题是,为什么其他人不会这样做?

else 
{
document.getElementById('error').innerHTML = 'No Geolocation Support';
}

由于

1 个答案:

答案 0 :(得分:0)

如果您的浏览器不支持地理位置,则会显示错误消息,要在支持它的浏览器上启用禁用地理位置,您通常需要查看地址栏旁边的应该有一个可以用来禁用的小图标/启用地理位置。

为了让您检测以前的决策天气您启用/禁用地理位置,您可以使用我在本文中建议的解决方案:

Is there a way of detecting whether a user has already given permission to use navigator.geolocation?

对于IE9,它运行正常,唯一的一点是你应该点击网页底部的Allow blocked cnotent

enter image description here