Verschiedene Möglichkeiten, um den geografischen Standort zu lokalisieren: IP -Adresse, GPS, WLAN, GSM/CDMA
Geografischer Standortakquisitionsprozess :1. Der Benutzer öffnet eine Webanwendung, die einen geografischen Standort erhalten muss.
2. Die Anwendung fordert den Browser an den geografischen Standort an, und der Browser taucht eine Abfrage auf, um zu fragen, ob der Benutzer den geografischen Standort weitergibt.
3. Unter der Annahme, dass der Benutzer dies erlaubt, wird der Browser die relevanten Informationen aus den Einstellungen abfragt.
V.
Implementierung des HTML5 -Geografischen Status :1. Implementieren Sie die Technologie, Benutzer basierend auf dem Browser zu erhalten (kein Backend -Support erforderlich)
2. Suchen Sie den geografischen Standort des Benutzers genau (die Genauigkeit beträgt je nach Ausrüstung bis zu 10 m).
3.. Verfolgen Sie den geografischen Standort des Benutzers kontinuierlich
4. Präsentieren Sie interaktiv Standortinformationen mit Google Map oder Baidu Map
Die Geolocation -API wird verwendet, um die aktuellen Geolocation -Informationen des Benutzers mit vertrauenswürdigen Websites zu teilen, die die Datenschutz- und Sicherheitsprobleme des Benutzers beinhalten. Wenn eine Website die aktuelle Geolokalisierung des Benutzers erhalten muss, fordert der Browser den Benutzer auf, zuzulassen oder abzulehnen.
Schauen wir uns zunächst an, welche Browser die Geolocation -API unterstützen:
IE9.0+, ff3.5+, safari5.0+, Chrome5.0+, Opera10.6+, iPhone3.0+, Android2.0+
Die Geolocation -API existiert im Navigator -Objekt und enthält nur 3 Methoden:
1. GetCurrentPosition // Aktueller Standort
2. Wachposition // Überwachungsort
3. Clearwatch // Überwachung löschen
navigator.geolocation.getCurrentPosition (…, Funktion (Fehler) {
Switch (error.code) {
Fallfehler.Timeout:
ALERT ("Verbindungszeitpunkt, bitte versuchen Sie es noch einmal");
brechen;
Fallfehler.Permission_Denied:
ALERT ("Sie haben die Nutzung des Standort -Sharing -Dienstes abgelehnt, die Abfrage wurde storniert");
brechen;
Fallfehler.position_unavailable:
Alert ("Entschuldigung, Sie können Ihrem Planeten nicht mehr Standortdienste anbieten");
brechen;
}
});
Die UhrPosition ist wie ein Tracker mit Clearwatch.
Die Uhrenbeschwerde ist ein bisschen wie die Art und Weise wie SetInterval und ClearInterval -Arbeit.
var watchPositionId = navigator.geolocation.watchPosition (success_callback, error_callback, Optionen);
navigator.geolocation.clearWatch (UhrenpositionID);
HTML 5 bietet eine Reihe von APIs wie den geografischen Standort für Benutzer, mit dem Benutzer LBS -geografische Anwendungen erstellen können. Erstens wird in einem Browser, der HTML 5 unterstützt, beim Öffnen der API gefragt, ob der Benutzer sich bereit erklärt, die API zu verwenden, andernfalls wird sie nicht aktiviert, um die Sicherheit zu gewährleisten.
1. Schalten Sie fest, ob der Browser die LBS -API unterstütztFunktion IsgeolocationAPIAVIABLEBEN ()
{
var location = "Nein, Geolokalisierung wird von diesem Browser nicht unterstützt.";
if (window.navigator.geolocation) {
location = "Ja, Geolokalisierung wird durch diesen Browser unterstützt.";
}
Alarm (Ort);
}
Im obigen Beispiel wurde auch die Ausnahme in der DisplayError -Methode gefangen;
2. Erhalten Sie den geografischen Standort des BenutzersDies geschieht mit GetCurrentPosition;
Funktionsanforderung () {
if (nav == null) {
Nav = Fenster.navigator;
}
if (nav! = null) {
var geoloc = nav.geolocation;
if (geoloc! = null) {
Geoloc.getCurrentPosition (SuccessCallback);
}
anders {
ALERT ("Geolocation -API wird in Ihrem Browser nicht unterstützt");
}
}
anders {
Alert ("Navigator ist nicht gefunden");
}
}
Wenn der geografische Standort erfolgreich erhalten wird, wird eine Rückrufmethode generiert, um das zurückgegebene Ergebnis zu verarbeiten.
Funktionsetlokation (val, e) {
document.getElementById (e) .Value = val;
}
Funktion SuccessCallback (Position)
{
setLocation (Position.Coords.Latitude, "Latitude"); setLocation (Position.coords.longitude, "Longitude");
}
3.. Eine sehr häufige Frage ist, wie Sie den sich ändernden geografischen Standort der Benutzer verfolgen. Hier fassen wir die beiden verwendeten APIs zusammen.1 Uhrenbeobachtung
Beispiele sind wie folgt:
Funktion hörerpositionupdates () {
if (nav == null) {
Nav = Fenster.navigator;
}
if (nav! = null) {
var geoloc = nav.geolocation;
if (geoloc! = null) {
watchId = geoloc.watchPosition (SuccessCallback);
} anders {
ALERT ("Geolocation -API wird in Ihrem Browser nicht unterstützt");
}
} anders {
Alert ("Navigator ist nicht gefunden");
}
}
In SuccessCallback können Sie den neuesten geografischen Standort für die Anzeige festlegen:
Funktion SuccessCallback (Position) {
setText (Position.coords.Latitude, "Latitude"); setText (Position.coords.longitude, "Longitude");
}
Wenn Sie keine Echtzeitverfolgung möchten, können Sie es stornieren:
Funktion clearWatch (watchId) {
window.navigator.geolocation.clearWatch (WatchID);
}
4. Wie man mit Ausnahmen umgehtWenn eine Ausnahme auftritt, können Sie sie fangen:
if (geoloc! = null) {
Geoloc.getCurrentPosition (SuccessCallback, FehlerCallback);
}
Funktion Fehlercallback (Fehler) {
var message = "";
Switch (error.code) {
Fallfehler.Permission_Denied:
Message = "Diese Website hat keine Berechtigung zu verwenden"
+ "Die Geolocation -API";
brechen;
Fallfehler.position_unavailable:
Message = "Die aktuelle Position konnte nicht bestimmt werden.";
brechen;
Fallfehler.
Message = "Die aktuelle Position konnte nicht bestimmt werden"
+ "Innerhalb der angegebenen Zeitlimitzeit.";
brechen;
}
if (message == "") {
var StrerrorCode = error.code.toString ();
Message = "Die Position konnte nicht durch" bestimmt werden "
+ "Ein unbekannter Fehler (Code:" + StrerrorCode + ").
}
alarm (Nachricht);
}
5. Zeigen Sie den Speicherort auf Google Map an (vorausgesetzt, die Google Map -API ist festgelegt).Funktion getCurrentLocation ()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition (Showmyposition, Duschror);
}
anders
{
Alert ("Nein, Geolokalisierungs -API wird von diesem Browser nicht unterstützt.");
}
}
Funktionshowmyposition (Position)
{
var coordinaten = Position.coords.latitude+","+Position.coords.longitude;
var map_url = "http://maps.googleapis.com/maps/api/staticmap?center="
+Koordinaten+"& zoom = 14 & size = 300x300 & sensor = false";
document.getElementById ("googlemap"). InnerHtml = "<img src = '"+map_url+"' />";
}
Funktion Duschror (Fehler)
{
Switch (Fehler.code)
{
Fallfehler.Permission_Denied:
ALERT ("Diese Website hat keine Erlaubnis, die Geolocation -API zu nutzen")
brechen;
Fallfehler.position_unavailable:
alarm ("Die Stromposition konnte nicht bestimmt werden.")
brechen;
Fallfehler.Timeout:
ALERT ("Die Stromposition konnte innerhalb der angegebenen Zeitausgangszeit nicht bestimmt werden.")
brechen;
Fallfehler.Unnown_error:
ALERT ("Die Position konnte aufgrund eines unbekannten Fehlers nicht bestimmt werden.")
brechen;
}
}