2010-04-05 11 views
131

Ich entwickle eine mobile Website, da ich Google Maps integriert habe, muss ich das "Von" Feld von Google Maps dynamisch füllen.GPS-Position aus dem Webbrowser holen

Ist es möglich, den GPS-Standort vom Webbrowser abzurufen und ihn dynamisch in das Feld "Von" einer Google Map einzufügen?

+2

Welche Handys finden Sie zu unterstützen Sie beabsichtigen? –

+0

Ich möchte alle mobilen Browser unterstützen, aber I-Phone ist die hohe Priorität – Ganesh

+0

Sie könnten besser dran sein, eine native App schreiben, wie es enger Integration mit der Hardware ermöglicht, wo es verfügbar ist –

Antwort

3

Es gibt die GeoLocation API, aber Browser-Unterstützung ist derzeit eher dünn auf dem Boden. Die meisten Websites, die sich um solche Dinge kümmern, verwenden eine GeoIP-Datenbank (mit den üblichen Vorbehalten bezüglich der Ungenauigkeit eines solchen Systems). Sie können auch Dienste von Drittanbietern anzeigen, die eine Zusammenarbeit mit dem Benutzer erfordern, z. B. FireEagle.

+1

Vielen Dank für Ihre schnelle Antwort. Wenn möglich, können Sie mir weitere Tipps geben ... – Ganesh

155

Wenn Sie die Geolocation API verwenden, wäre es so 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); 
}); 

Sie können auch Google's Client Location API verwenden. Dieses Problem wurde in Is it possible to detect a mobile browser's GPS location? und Get position data from mobile browser diskutiert. Dort finden Sie weitere Informationen.

+0

Wird die Google Client Location API noch immer erwähnt? Der angegebene Link geht an Google Loader –

+1

Ich sehe es nicht auf dieser Seite als eine der verfügbaren APIs. - Sie können möglicherweise die Google Latitude-API verwenden: http://code.google.com/apis/latitude/ - Hiermit können Sie den aktuellen Standort des Kunden abrufen: http://code.google.com/apis/latitude/v1/using_rest.html # RetrievingCurrent – dochoffiday

+1

w3c link: http://dev.w3.org/geo/api/spec-source.html – surfealokesea

44

Siehe die Diskussion How to get GPS coordinates in the browser

Dort finden Sie den Link zum Beispiel Anwendung Where Am I? haben, die auf mobilen Geräten funktioniert. Ich habe es auf meinem Android getestet und es hat GPS-Modul gestartet, um aktuelle Koordinaten zu erhalten. Sie können die Quelle am lebenden Beispiel analysieren.

Ich habe QR-Code für den schnellen Zugriff von Mobil gemacht:

Where Am I QR code

+30

+1 für den QR-Code ... – Asken

+5

, dass QR mir eine ganze Menge Aufwand gespart – captDaylight

+1

funktioniert nicht auf meinem Android-Handy, auch wenn GPS + WiFi aktiviert ist und erlaubt. –

17

ein bisschen mehr spezifische Antwort zu geben. HTML5 erlaubt Ihnen, die Geo-Koordinaten zu bekommen, und es macht einen ziemlich guten Job. Insgesamt ist die Browser-Unterstützung für Geolocation ziemlich gut, alle gängigen Browser außer ie7 und ie8 (und Opera Mini). IE9 macht den Job, ist aber der schlechteste Performer. Kasse caniuse.com:

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

Auch benötigen Sie die Zustimmung Ihres Benutzer ihren Standort zugreifen, so stellen Sie sicher, dass Sie für diese überprüfen und ein paar anständige Anweisungen für den Fall geben, es ist ausgeschaltet. Vor allem für Iphone sind die Berechtigungen für Safari einzuschalten etwas umständlich.

+1

https://www.w3schools.com/html/html5_geolocation.asp –

+0

http://www.dotnetcurry.com/aspnet-mvc/782/html5-geolocation-aspnet-mvc-part1 ist eine praktische Referenz für die Implementierung in ASP .net mvc umgebung –

5

verwenden, und Sie werden alle Informationen auf 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> 
+0

getestet von iphone arbeitet sehr präzise (y) –

+1

Nur eine Anmerkung: getCurrentPosition() und watchPosition() nicht mehr auf unsicheren Ursprüngen arbeiten. Um diese Funktion zu verwenden, sollten Sie Ihre Anwendung auf einen sicheren Ursprung wie HTTPS umstellen. – user2589273

Verwandte Themen