HTML5地理定位在Firefox,Chrome和Chromium中无效

时间:2012-08-07 08:16:11

标签: html5 firefox google-chrome geolocation w3c-geolocation

我正在尝试使用HTML5地理定位API;但是我在Firefox Chrome和Chromium上运行时遇到了问题:


init();

function init() {;
    // Get the current location
    getPosition();      
}

function getPosition() {
    navigator.geolocation.getCurrentPosition(success, fail,{
        enableHighAccuracy:true,
        timeout:10000,
        maximumAge:Infinity
    });    
}   

function success(position) {
    alert("Your latitude: " + position.coords.latitude + "longitude: "
        + position.coords.longitude);
}

function fail(e) {
    alert("Your position cannot be found"+e.code+" => "+e.message);
}

在IE9和Safari中,它完美无瑕;但是:

    Firefox中的
  • (v13和V14)存在错误代码3(超时)
  • 在Chrome和Chromium(第20版和第21版)中有错误代码2,其中包含“网络位置提供商位于'https://maps.googleapis.com/maps/api/browserlocation/json?browser=googlechrome&sensor = true':响应格式错误。“

我全新安装了Chrome(今天安装在Windows XP上,没有扩展程序),我已经在浏览器中授权了地理定位。

你可以在那里试试: http://jsfiddle.net/mhj82/38/

是否有解决方案使其适用于支持地理定位的所有浏览器?

3 个答案:

答案 0 :(得分:0)

你读过这个吗? http://code.google.com/p/chromium/issues/detail?id=41001

在主题结束时,他们得出的结论是,为了在Chrome中工作,必须在具有有效wifi适配器的设备上执行地理定位。

您的计算机上启用了wifi吗?

(dunno for firefox)

答案 1 :(得分:0)

我必须等到文档加载才能使它在chrome中运行

jQuery().ready(function() {
   if (navigator.geolocation) { 
        navigator.geolocation.getCurrentPosition....
    }
});

答案 2 :(得分:0)

在Chrome桌面和移动设备中试用此功能

if (navigator.geolocation) {
    var latitude = null;
    var longitude = null;
    navigator.geolocation.getCurrentPosition(function (position) {
        latitude = position.coords.latitude;
        longitude = position.coords.longitude;
   });



} else {
    alert("Geolocation API is not supported in your browser");
};