地理定位不适用于Firefox

时间:2013-10-28 10:31:17

标签: firefox geolocation

所以,我使用这段代码:

var options = {
  enableHighAccuracy: true,
  timeout: 2000,
  maximumAge: 100
  };

navigator.geolocation.getCurrentPosition(localizeMe, errorLocalize, options);

在回调localizeMe上,我做了一些成功的事情,当这段代码不起作用时,errorLocalize会向我显示警告。

当我在Chrome上试用此代码时,没关系,我没有问题。但是在firefox上,当我尝试这段代码时,我总是有警报错误,回调错误总是被调用...你有什么想法吗?

4 个答案:

答案 0 :(得分:2)

自从v24。

以来,在Linux和Mac上已经打破了Firefox的地理定位

这里有一个针对Ubuntu的错误:https://bugs.launchpad.net/ubuntu/+source/firefox/+bug/1231273

答案 1 :(得分:0)

也许是同一个问题: firefox: navigator.geolocation.getCurrentPosition does not succeed anymore

如果你使用的是linux,请尝试另一个firefox版本。

答案 2 :(得分:0)

在Windows上它也被打破了(至少在Windows 7 x64上,还没有在其他版本上测试过)。 23.0.1没关系。

答案 3 :(得分:0)

还有其他方法,你可以使用google的http服务。

如果您使用的是角度,那么首先需要导入此

import { Http, Headers, RequestOptions, Response } from '@angular/http';

或者您可以根据您的脚本语言使用其他方式。 然后在您编写上述代码的方法之一中添加此代码

let body = {
  enableHighAccuracy: true,
  timeout: 2000,
  maximumAge: 100
};
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
this.http.post("https://www.googleapis.com/geolocation/v1/geolocate?key=YOUR_API_KEY", body, headers).map((data: any) => data.json());

当您订阅上述http请求的结果时,您将获得所需的json格式数据

{
  "location": {
         "lat": 21.1247647,
         "lng": 79.04754489999999
   },
  "accuracy": 625
}

根据您的要求使用它..快乐编码