वेब ब्राउजर से जीपीएस लोकेशन प्राप्त करें


164

मैं एक मोबाइल आधारित वेब-साइट विकसित कर रहा हूं, वहां मैंने गूगल मैप्स को एकीकृत किया है, मुझे गतिशील रूप से Google मैप्स के 'फ्रॉम' क्षेत्र को भरने की आवश्यकता है।

क्या वेब ब्राउज़र से जीपीएस स्थान प्राप्त करना और गतिशील रूप से Google मानचित्र के 'से' फ़ील्ड में भरना संभव है?


2
आप किन मोबाइलों का समर्थन करना चाहते हैं?
रोलैंड शॉ

मैं सभी मोबाइल ब्राउज़रों का समर्थन करना चाहता हूं, लेकिन
गणेश

देशी ऐप लिखना बेहतर हो सकता है, क्योंकि यह हार्डवेयर के साथ सख्त एकीकरण की अनुमति देगा, जहां यह उपलब्ध है
रॉलैंड शॉ

16
यदि आवश्यकता केवल स्थान के संबंध में है, तो एक देशी ऐप बेहद ओवरकिल है। iOS केवल मोबाइल नहीं है, यह सिर्फ एक प्राथमिकता है।
गोंकेलो वेगा

जवाबों:


194

यदि आप जियोलोकेशन एपीआई का उपयोग करते हैं , तो यह निम्न कोड का उपयोग करने के समान सरल होगा।

navigator.geolocation.getCurrentPosition(function(location) {
  console.log(location.coords.latitude);
  console.log(location.coords.longitude);
  console.log(location.coords.accuracy);
});

आप Google के ग्राहक स्थान API का उपयोग करने में भी सक्षम हो सकते हैं

इस मुद्दे पर चर्चा की गई है कि क्या मोबाइल ब्राउज़र के जीपीएस स्थान का पता लगाना संभव है? और मोबाइल ब्राउज़र से स्थिति डेटा प्राप्त करें । आप वहां अधिक जानकारी पा सकते हैं।


क्या Google ग्राहक स्थान API का अभी भी उल्लेख किया गया है? प्रदान किया गया लिंक Google लोडर पर जाता है
शेन एन

1
मैं इसे उस पृष्ठ पर उपलब्ध API में से एक के रूप में नहीं देखता। - आप Google अक्षांश API: code.google.com/apis/latitude का उपयोग करने में सक्षम हो सकते हैं - इसके साथ ही ग्राहक का वर्तमान स्थान प्राप्त करना संभव है: code.google.com/apis/latitude/v1/…
dochoffiday

1
भविष्य के पाठकों के लिए, सटीकता को मीटर में मापा जाता है
johnnyRose

हाय हम कोडिंग के माध्यम से साझा करने के स्थान को स्वतः-सक्षम कर सकते हैं
श्री तोमर

2
क्या यह आपके स्थान के उपयोग का अनुरोध करता है?
जैक

21

थोड़ा और विशिष्ट उत्तर देने के लिए। HTML5 आपको जियो निर्देशांक प्राप्त करने की अनुमति देता है, और यह एक बहुत अच्छा काम करता है। कुल मिलाकर ब्राउज़र का समर्थन जियोलोकेशन के लिए बहुत अच्छा है, यानी 7 और ie8 (और ओपेरा मिनी) को छोड़कर सभी प्रमुख ब्राउज़र। IE9 काम करता है लेकिन सबसे खराब प्रदर्शन करने वाला है। चेकआउट caniuse.com:

http://caniuse.com/#search=geol

इसके अलावा, आपको उनके स्थान तक पहुँचने के लिए अपने उपयोगकर्ता की स्वीकृति की आवश्यकता है, इसलिए सुनिश्चित करें कि आप इसके लिए जाँच करें और इसे बंद करने की स्थिति में कुछ अच्छे निर्देश दें। विशेष रूप से Iphone के लिए सफारी के लिए अनुमतियां चालू करना थोड़ा बोझिल है।


dotnetcurry.com/aspnet-mvc/782/… asp.net mvc पर्यावरण में कार्यान्वयन के लिए एक आसान संदर्भ है
वाल्टर डी जोंग

13

इसका उपयोग करें, और आपको http://www.w3schools.com/html/html5_geolocation.asp पर सभी informations मिलेंगे

<script>
var x = document.getElementById("demo");
function getLocation() {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(showPosition);
    } else {
        x.innerHTML = "Geolocation is not supported by this browser.";
    }
}
function showPosition(position) {
    x.innerHTML = "Latitude: " + position.coords.latitude + 
    "<br>Longitude: " + position.coords.longitude; 
}
</script>

1
बस एक नोट: getCurrentPosition () और watchPosition () अब असुरक्षित उत्पत्ति पर काम नहीं करते हैं। इस सुविधा का उपयोग करने के लिए, आपको अपने एप्लिकेशन को एक सुरक्षित मूल पर स्विच करने पर विचार करना चाहिए, जैसे HTTPS।
user2589273

4

इसमें GeoLocation API है , लेकिन वर्तमान में ब्राउज़र समर्थन जमीन पर नहीं बल्कि पतला है। ज्यादातर साइटें जो इस तरह की चीजों की देखभाल करती हैं, वे एक जियोआईपी डेटाबेस का उपयोग करते हैं (ऐसी प्रणाली की अशुद्धि के बारे में सामान्य रूप से)। आप फायरएगले जैसे उपयोगकर्ता के सहयोग की आवश्यकता वाली तृतीय पक्ष सेवाओं को भी देख सकते हैं ।


1
आपकी त्वरित प्रतिक्रिया के लिए बहुत बहुत धन्यवाद। यदि संभव हो, तो क्या आप मुझे कुछ और सुझाव प्रदान कर सकते हैं ...
गणेश

2

नमूदार

/*
  function geo_success(position) {
    do_something(position.coords.latitude, position.coords.longitude);
  }

  function geo_error() {
    alert("Sorry, no position available.");
  }

  var geo_options = {
    enableHighAccuracy: true,
    maximumAge        : 30000,
    timeout           : 27000
  };

  var wpid = navigator.geolocation.watchPosition(geo_success, geo_error, geo_options);
  */
  getLocation(): Observable<Position> {
    return Observable.create((observer) => {
      const watchID = navigator.geolocation.watchPosition((position: Position) => {
        observer.next(position);
      });
      return () => {
        navigator.geolocation.clearWatch(watchID);
      };
    });
  }

  ngOnDestroy() {
    this.sub.unsubscribe();
  }

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.