2009-11-26 7 views
17

geolocation api के डिफ़ॉल्ट व्यवहार को ओवरराइड करने का कोई आसान तरीका है और केवल आपके वर्तमान स्थान को हार्ड कोड है?फ़ायरफ़ॉक्स के लिए जिओलोकेशन प्रदाता जो मैन्युअल इनपुट

मुझे लगता है कि इस परीक्षण के लिए और गोपनीयता कारणों (नकली स्थान डेटा उपलब्ध कराने)

के लिए उपयोगी होगा मैंने सोचा था कि एक इस के लिए पर जोड़ने लेकिन मैं एक खोजने के लिए नहीं कर पा रहे था। ऐसा लगता है कि अभी एक विकल्प केवल कुछ बदल रहा है: config geo.wifi.url कुछ वैकल्पिक webservice पर, जिसे मैं अत्यधिक जटिल मानता हूं।

कोई विचार?

धन्यवाद

आदर्श परिदृश्य

किसी ने एक ऐड-ऑन जहां एक गूगल मानचित्र दिखाई देता है और मैं एक नया डिफ़ॉल्ट स्थान चुन सकते हैं लागू करता है।

+0

इस तरह के एक आदर्श परिदृश्य को पूरा किया गया है - अब क्रोम वेबस्टोर पर मैन्युअल जिओलोकेशन क्रोम एक्सटेंशन है। – ronme

उत्तर

11

geo.wifi.uri एक वेब सेवा करने की आवश्यकता नहीं है। तुम भी फ़ाइल के साथ एक स्थानीय uri के लिए सेट कर सकते हैं: // ...

फ़ाइल एक json फ़ाइल होना चाहिए इस तरह की सामग्री के साथ:

{"location": { 
       "latitude": 48.777025000000002, 
       "longitude": 9.1713909999999998, 
       "accuracy": 10.0}} 

अद्यतन: Firefox के लिए 9+, प्रारूप बदल गया है:

{ 
    "status": "OK", 
    "accuracy": 10.0, 
    "location": {"lat": 48.777, "lng": 9.171} 
} 

या आप दोनों का समर्थन करने के लिए उन्हें गठबंधन कर सकते हैं:

{ 
    "status": "OK", 
    "accuracy": 10.0, 
    "location": { 
     "lat": 48.777, 
     "lng": 9.171, 
     "latitude": 48.777, 
     "longitude": 9.171, 
     "accuracy": 10.0 
    } 
} 

अद्यतन: ऐसा लगता है कि यह वरीयता मैन्युअल रूप से Google सेवा मानने वाले प्रदाता द्वारा अवरुद्ध है। देखें Bug 716453 अद्यतन 2: geo.wifi.uri

0

हम्म, आप सीधे navigator.geolocation नकल नहीं कर सकते हैं - शायद आप अपने कोड को दोबारा इस्तेमाल कर सकते हैं जो किसी अन्य ऑब्जेक्ट का उपयोग करने के लिए इसका उपयोग करता है - customGeoLocation कहें।

उत्पादन में आप केवलसे navigator.geolocation पर सेट कर सकते हैं और परीक्षणों में आप जो भी कार्यक्षमता उपयोग करते हैं उसका नकली कार्यान्वयन का उपयोग कर सकते हैं।

संपादित करें: बाहर कर देता है आप navigator.geolocation वस्तु पर काम करता है जगह ले सकता है, लेकिन है कि अभी भी बेकार है अगर आप एक नकली पुस्तकालय (JsMock) की तरह प्रयोग कर रहे हैं जो एक नकली वस्तु बनाने के लिए की जरूरत है। तो आप एक नकली के साथ navigator.geolocation को प्रतिस्थापित नहीं कर पाएंगे।

आप क्या कर सकते हैं इस फैशन में अपने आप मजाक:

var getCurrentPositionCalled = false; 
navigator.geolocation.getCurrentPosition = function() { 
    getCurrentPositionCalled = true; 
}; 

//Your app code here 
//... 
assert(getCurrentPositionCalled); 
5

Geolocater geo.wifi.url नहीं एक प्रयोगात्मक है ऐड-ऑन है कि आप अपने जियोलोकेशन संपादित करने देता है।

+0

यह अब और अधिक प्रयोगात्मक नहीं है। – PhoneixS

0

मैंने फ़ायरफ़ॉक्स भौगोलिक स्थान पर Google अक्षांश को तार दिया है। यह आपको अक्षांश और देशांतर को अपने आप को देखने और इसे स्थानीय फ़ाइल में टाइप करने के बजाय, एक माउस क्लिक के साथ Google अक्षांश में मैन्युअल रूप से अपना स्थान अपडेट करने देता है। विषय पर मेरा आलेख Make Firefox Take Geolocation From Google Latitude है।

समाधान के लिए सर्वर-साइड कोडिंग (मैं लेख में स्रोत कोड प्रदान करता हूं) की एक छोटी राशि की आवश्यकता होती है, लेकिन मैं इस कोड को मुफ्त लाइव सेवा के रूप में चलाने के लिए समय के लिए हूं जिसका उपयोग आप कर सकते हैं।

चीयर्स, MetaEd

13

सबसे आसान तरीका है about:config नेविगेट करने के लिए और उसके बाद फिल्टर बॉक्स में geo.wifi.uri दर्ज है, केवल config पंक्ति जो बताता है कि डबल क्लिक करें, और नीचे आप xxx और yyy की जगह के बाद मान दर्ज समन्वय के साथ http://www.getlatlon.com/ की तरह एक सेवा से मिलता है:

data:application/json,{"location":{"latitude":xxx,"longitude":yyy,"accuracy":10}}

यह चाल किसी भी ऐड-ऑन की आवश्यकता नहीं है या स्थानीय/होस्ट की गई फ़ाइलों। सुनिश्चित करें कि मूल्य किसी भी रिक्त स्थान के बिना है और एक ही पंक्ति पर है!

+2

संदर्भ के लिए, इस क्षेत्र का डिफ़ॉल्ट मान 'geoloc: // www.google.com/loc/json' –

+0

फ़ायरफ़ॉक्स 10 में ऐसा लगता है कि यह अब काम नहीं कर रहा है। – skolima

+0

फ़ायरफ़ॉक्स में 10+ इस डेटा का उपयोग करें: एप्लिकेशन/जेसन, {"स्थान": {"lat": xxx, "lng": yyy, "सटीकता": 10}} ' –

1

क्रोम में, आप Manual Geolocation क्रोम एक्सटेंशन का उपयोग कर सकते हैं। यह आपको ग्राफिक रूप से अपना मैन्युअल स्थान चुनने देगा।

0

मैंने एक साधारण वेब एप्लिकेशन बनाया है जो भौगोलिक स्थान समापन बिंदु के रूप में कार्य करता है, आप ब्राउज़र के geo.wifi.uri को इंगित कर सकते हैं। यह Google एपीआई विनिर्देश के साथ संगत है। इसका इस्तेमाल करने के लिए, बस वांछित मूल्यों के साथ [अक्षांश] और [देशांतर] की जगह निम्नलिखित दर्ज करें:

http://geolocation-mocker.phitherek.me/geolocate/[latitude]/[longitude] 

और यह काम करना चाहिए। यदि सेवा निर्भर है की जाँच करने के लिए,

http://geolocation-mocker.phitherek.me

पर जाएँ और अगर सही ढंग से प्रदर्शित करता है HTML पृष्ठ की जाँच करें। आप

https://github.com/Phitherek/geolocation-mocker

मुझे आशा है कि इस उपकरण के उपयोगी साबित होगा पर इस सरल अनुप्रयोग के लिए स्रोत कोड प्राप्त कर सकते हैं।

संबंधित मुद्दे