2010-09-03 7 views
8

Ich würde gerne wissen, wie Geolocation in einem Webbrowser wie Google Chrome oder Firefox funktioniert?Wie funktioniert die Geolokalisierung im Webbrowser?

Ich kann auf diese Website http://html5demos.com/geo zugreifen und wenn ich dem Browser erlaube, meinen Standort zu senden, wird mein aktueller Standort angezeigt.

Aber wenn ich diese URL an meine Freunde sende, um es zu testen, funktioniert es nicht für alle von ihnen. Wie funktioniert die Geolokalisierung und wie implementiere ich sie, um den richtigen Standort zu erhalten?

+0

Wollen Sie es auf arbeiten, eine Website? Welche Plattform? Möchtest du einem Benutzer nur zeigen, wo er ist? Oder möchten Sie verschiedene Standorte zeigen? – Steven

+0

-1 für nicht mit der Suchfunktion: http://stackoverflow.com/questions/2248404/about-geolocation-in-html-5 – BeRecursive

+0

5 Jahre später und in der Regel müssen Sie dies "erlauben". Natürlich ist es nicht immer genau und zeigt nicht "Ihren" Standort an, sondern den Standort des Hosts des Browsers. VNC/RDP/SSH (w/X) wird also einen gewissen Abstand zwischen Ihnen und Ihrem "aufgedeckten" Standort bringen. Proxy allein darf nicht mehr, wenn der Host Ihres Browsers über GPS-Funktionen verfügt. Ein Smartphone im selben Subnetz (dh öffentliche und private IPS können in Back-End-Suchmustern verwendet werden) kann Sie verraten. – mckenzm

Antwort

2

Re, wie es funktioniert: die Wikipedia article mehr Techniken (IP-Adresse Standort, Mobiltelefon und WiFi-Triangulation diskutiert, GPS).

Die HTML5-Implementierungen erfordern beide Browser-Unterstützung (FF 3.6, Opera 10.60, Chrome 4? 5 ?, IE möglicherweise eines Tages) und Benutzer Zustimmung, bevor die Geolokation Daten abgerufen werden.

Wie zu implementieren, scheint die code of the demo you link to unter der MIT License zu sein, die im Grunde sagt "Sie können was auch immer tun, solange Sie den resultierenden Code unter der Lizenz halten"; Sie könnten also diesen Code als Basis verwenden, auf dem Sie aufbauen können.

+0

Ich bin vom PC eingeloggt, mit dem Internet über einen Proxy in meiner Universität verbunden. Wie sagt es meinen fast genauen Standort, während es keine GPS-Sache mit meinem PC gibt? – SMUsamaShah

+1

LifeH2O: Um mich selbst zu zitieren: "Der Wikipedia-Artikel diskutiert verschiedene Techniken (** IP-Adresse Ort **,)" - vielleicht ist der Proxy physisch in Ihrer Nähe? Wie "fast genau" ist das? Die Genauigkeit hängt davon ab - an der Universität war "mein" Standort immer etwa 100 Meilen entfernt, da dies der Ort des Proxy war (ja, nicht optimales Netzwerkdesign; aber sie hatten * diese * Position bis hinunter zum Stadtblock korrekt). – Piskvor

5

Wenn Sie eine location-aware Website besuchen, Firefox wird Sie fragen, ob Sie Ihren Standort teilen möchten.

Wenn Sie einverstanden sind, sammelt Firefox Informationen über in der Nähe drahtlosen Access Points und Adresse IP Ihres Computers. Dann sendet Firefox diese Informationen an die Standard-Geolokalisierung Service-Provider, Google Location Services, um eine Schätzung Ihres Standort zu erhalten. Diese Standortschätzung wird dann mit der anfordernden Website geteilt.

http://www.mozilla.com/en-US/firefox/geolocation/

So hängt es von dem Browser sie verwenden und etwas Glück :-)

+0

Ich bin vom PC aus angemeldet, verbunden mit dem Internet über einen Proxy in meiner Universität. Wie sagt es meinen fast genauen Standort, während es keine GPS-Sache mit meinem PC gibt? – SMUsamaShah

+0

@ LifeH2O http://security.stackexchange.com/questions/16253/how-does-google-maps-know-where-i-am-when-im-using-a-vpn –

0

Die Dinge hängen wirklich von der Implementierung der Website, die Sie verwenden, und Ihres Browsers ab.

Der einfachste Weg, der keine clientseitigen Erweiterungen erfordert, ist, dass die Webseite Ihre IP-Adresse erhält und einen der "ip to geolocation" -Dienste benutzt, um einen quetime zu machen, wo Sie gerade sind.

Die zweite Option ist, dass Browser eine Erweiterung haben, mit der Sie Ihre Koordinaten dem Webserver bekannt geben können. In diesen Fällen kann diese Information auf der Client-Seite entweder abgerufen werden, wieder von IP zu Geolocation-Diensten oder GPS-Einheit, die an Ihren Computer angeschlossen ist. Zum Beispiel, Nokia N900 und integrierte Browser MicroB hat diese Art von Erweiterung.

1

Info und Beispiele aus W3C Geolocation API Specification:

Geolokationssystem API definiert eine Schnittstelle auf hoher Ebene zu Ort Informationen zugeordnet nur mit dem Gerät die Implementierung, wie beispielsweise Breitengrad und Längengrad-Hosting. Die API selbst ist agnostic der zugrunde liegenden Standortinformationsquellen.Gemeinsame Quellen von Standortinformationen umfassen Global Positioning System (GPS) und Standort von Netzwerk-Signalen wie IP-Adresse, RFID, WiFi und Bluetooth MAC-Adressen und GSM/CDMA-Zellen IDs sowie als Benutzereingabe abgeleitet. Es wird keine Garantie gegeben, dass die API den tatsächlichen Standort des Geräts zurückgibt.

Man könnte es auf diese Weise implementieren:

(One-Shot-Positionsanforderung)

function showMap(position) { 
    // Show a map centered at (position.coords.latitude, position.coords.longitude). 
} 

// One-shot position request. 
navigator.geolocation.getCurrentPosition(showMap); 

(anfordernden wiederholt Position Updates)

function scrollMap(position) { 
    // Scrolls the map so that it is centered at (position.coords.latitude, position.coords.longitude). 
} 

// Request repeated updates. 
var watchId = navigator.geolocation.watchPosition(scrollMap); 

function buttonClickHandler() { 
    // Cancel the updates when the user clicks a button. 
    navigator.geolocation.clearWatch(watchId); 
} 
Verwandte Themen