it-swarm.com.de

GPS-Standort über den Webbrowser abrufen

Ich entwickle eine mobile Website, da ich Google Maps integriert habe, muss ich das Feld "Von" von Google Maps dynamisch ausfüllen.

Ist es möglich, die GPS-Position über einen Webbrowser abzurufen und im Feld "Von" einer Google Map dynamisch aufzufüllen?

145
Ganesh

Wenn Sie die Geolocation-API verwenden, ist dies genauso einfach wie die Verwendung des folgenden Codes.

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

Möglicherweise können Sie auch die Google Client Location API verwenden.

Dieses Problem wurde in diskutiert. Ist es möglich, den GPS-Standort eines mobilen Browsers zu ermitteln? und Positionsdaten vom mobilen Browser abrufen . Hier finden Sie weitere Informationen.

178
dochoffiday

Siehe die Diskussion So erhalten Sie GPS-Koordinaten im Browser

Dort haben Sie den Link zur Beispielanwendung Wo bin ich? das funktioniert auf mobilen Geräten. Ich habe es auf meinem Android getestet und das GPS-Modul gestartet, um die aktuellen Koordinaten zu erhalten. Sie können die Quelle am lebenden Beispiel analysieren.

Ich habe QR-Code für den schnellen Zugriff vom Handy erstellt:

Where Am I QR code

44
Danubian Sailor

Um eine genauere Antwort zu geben. Mit HTML5 können Sie die Geokoordinaten abrufen, und das ist ziemlich anständig. Insgesamt ist die Browserunterstützung für Geolocation ziemlich gut, alle großen Browser mit Ausnahme von ie7 und ie8 (und Opera Mini). IE9 erledigt den Job, ist aber am schlechtesten. Kasse caniuse.com:

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

Außerdem benötigen Sie die Genehmigung Ihres Benutzers, um auf den Standort zuzugreifen. Stellen Sie daher sicher, dass dies der Fall ist, und geben Sie einige anständige Anweisungen für den Fall, dass er ausgeschaltet ist. Das Einschalten von Berechtigungen für Safari ist etwas umständlich. 

21
Tosh

Verwenden Sie dies und Sie finden alle Informationen unter http://www.w3schools.com/html/html5_geolocation.asp

<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>
8
Ema.H

Es gibt die GeoLocation API , aber die Browserunterstützung ist derzeit eher gering. Die meisten Websites, die sich für solche Dinge interessieren, verwenden eine GeoIP-Datenbank (mit den üblichen Vorbehalten hinsichtlich der Ungenauigkeit eines solchen Systems). Sie können sich auch die Dienste von Drittanbietern anschauen, die eine Benutzerzusammenarbeit erfordern, wie FireEagle .

4
Quentin

Beobachtbar

/*
  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();
  }
1
robert king

Verwenden wir die neuesten Fettpfeilfunktionen :

navigator.geolocation.getCurrentPosition((loc) => {
  console.log('The location in lat lon format is: [', loc.coords.latitude, ',', loc.coords.longitude, ']');
})
0
student