2013-10-28 16 views
6

Vì vậy, tôi sử dụng mã này:geolocation không làm việc với Firefox

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

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

Trên callback localizeMe, tôi làm một số việc thành công, và errorLocalize chỉ cho tôi một cảnh báo khi mã này không hoạt động.

Khi tôi thử mã này trên Chrome, không sao, tôi không gặp sự cố. Nhưng trên firefox, tôi luôn luôn có lỗi cảnh báo của mình khi tôi đang thử mã này, lỗi gọi lại luôn gọi ... Bạn có ý tưởng gì không?

+0

Lỗi (.code) là gì? – nmaier

+0

Lỗi Mozilla có liên quan - https://bugzilla.mozilla.org/show_bug.cgi?id=675533 Hy vọng điều này sẽ hữu ích! –

Trả lời

0

Trên Windows nó bị hỏng quá (ít nhất là trên Windows 7 x64, đã không kiểm tra nó chưa trên các phiên bản khác). 23.0.1 là OK.

0

Có cách khác để làm điều đó, bạn chỉ có thể sử dụng dịch vụ http của google.

nếu bạn đang sử dụng góc thì trước tiên bạn sẽ cần phải nhập khẩu này

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

hoặc bạn có thể sử dụng cách khác theo ngôn ngữ kịch bản của bạn. sau đó thêm mã này trong một trong những phương pháp mà bạn đang viết trên mã

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()); 

khi bạn sẽ đăng ký kết quả của trên http yêu cầu bạn sẽ nhận được dữ liệu cần thiết của bạn ở định dạng json như thế này

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

sử dụng nó theo yêu cầu của bạn ..hãy mã hóa

Các vấn đề liên quan