6

所以,我使用这个代码:

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

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

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

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

4

4 回答 4

2

我相信,自 v24 以来,Firefox、Linux 和 Mac 上的地理定位已被破坏。

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

于 2013-11-05T12:53:12.277 回答
0

在 Windows 上它也坏了(至少在 Windows 7 x64 上,还没有在其他版本上测试过)。23.0.1 没问题。

于 2014-01-01T13:09:07.307 回答
0

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

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

于 2013-10-29T12:34:24.060 回答
0

还有其他方法,你可以使用谷歌的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
}

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

于 2017-04-12T14:37:02.990 回答