IE8和移动浏览器的HTML5地理位置

| 因此,我一直在开发Web应用程序,并且已经实现了HTML5地理位置功能。我使用取自Google网站的Javascript代码实现了这一点,该Javascript代码还与我在页面上拥有的Google Map进行了交互。这是下面的代码:
// Note that using Google Gears requires loading the Javascript
// at http://code.google.com/apis/gears/gears_init.js

var initialLocation;
var siberia = new google.maps.LatLng(60, 105);
var newyork = new google.maps.LatLng(40.69847032728747, -73.9514422416687);
var browserSupportFlag =  new Boolean();

function initialize() {
  var myOptions = {
    zoom: 6,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };
  var map = new google.maps.Map(document.getElementById(\"map_canvas\"), myOptions);

  // Try W3C Geolocation (Preferred)
  if(navigator.geolocation) {
    browserSupportFlag = true;
    navigator.geolocation.getCurrentPosition(function(position) {
      initialLocation = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
      map.setCenter(initialLocation);
    }, function() {
      handleNoGeolocation(browserSupportFlag);
    });
  // Try Google Gears Geolocation
  } else if (google.gears) {
    browserSupportFlag = true;
    var geo = google.gears.factory.create(\'beta.geolocation\');
    geo.getCurrentPosition(function(position) {
      initialLocation = new google.maps.LatLng(position.latitude,position.longitude);
      map.setCenter(initialLocation);
    }, function() {
      handleNoGeoLocation(browserSupportFlag);
    });
  // Browser doesn\'t support Geolocation
  } else {
    browserSupportFlag = false;
    handleNoGeolocation(browserSupportFlag);
  }

  function handleNoGeolocation(errorFlag) {
    if (errorFlag == true) {
      alert(\"Geolocation service failed.\");
      initialLocation = newyork;
    } else {
      alert(\"Your browser doesn\'t support geolocation. We\'ve placed you in Siberia.\");
      initialLocation = siberia;
    }
    map.setCenter(initialLocation);
  }
}
因此,此代码的作用是,它检查您从中访问该站点的浏览器是否支持新的WC3地理位置功能,如果支持,则使用该功能查找纬度和经度。如果您不支持它,它会尝试使用Google Gears来获取该信息,最后,如果您不支持它,它就会失败。 对于Firefox,Safari,Opera和Chrome这样的浏览器,我完全可以使用这种方式,因为大多数新版本(甚至某些较旧的版本)都支持这些功能,但是IE8(9可以运行)不支持这些功能。 t :( IE8甚至都没有使用Google Gears故障保护功能,只是根本不起作用。无论如何,是否有(像上面的代码一样免费)在IE8上使用某种形式的地理位置,即使获取纬度和经度不太精确也可以将其插入地图中? 另外,我尚未进行测试,但是,如果您要使用移动浏览器(在主要设备上)登录到此网站,它是否也支持WC3 Geolocation / Google Gears,或者像IE8一样弹出。我知道我也可以在请求位置信息的情况下使用
sensor=true
属性(如果来自移动设备的GPS处于开启状态),这是另一种方式,但是我宁愿使用地理定位(如果他们支持) 。 多谢你们。     
已邀请:
在开始全面使用HTML5地理位置功能之前,我正在等待它们进一步成熟。同时,我成功使用了MaxMind提供的API和数据集。 编辑: 我忘了提一下,这有时在移动浏览器中无法很好地使用,因此您可能仍想在此使用HTML5地理位置功能,因为我发现它在移动浏览器中更加快捷可靠。     

要回复问题请先登录注册