簡體   English   中英

地理位置錯誤檢測

[英]Geolocation Error Detection

我正在使用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版本不支持地理位置定位(我已經使用自己的腳本嘗試了他們的測試站點),但是它沒有錯誤或警告,而且如果我不允許在Firefox或Chrome中定位,也不會出現任何錯誤或提醒。

有人可以幫忙嗎? 如果無法運行,我可以提供替代方案,因此我認為我不需要仔細檢查錯誤代碼,但是我確實需要能夠檢測到故障,因此我可以提供替代方案,但是腳本中的錯誤部分不會運行,無論如何。

我的問題確實是,為什么不這樣做?

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

謝謝

對於您的錯誤消息,如果您的瀏覽器不支持地理定位,則會出現該錯誤消息,要在支持它的瀏覽器上啟用禁用地理定位,通常需要在地址欄旁邊看一下,您應該可以使用一個小圖標來禁用/啟用地理定位。

為了使您能夠檢測先前啟用或禁用地理位置的決策天氣,可以使用我在本文中建議的解決方案:

有沒有一種方法可以檢測用戶是否已被授予使用navigator.geolocation的權限?

對於IE9,它工作正常,唯一的事情是您應該單擊網頁底部的“ Allow blocked cnotent點”。

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM