Varias formas de ubicar la ubicación geográfica: dirección IP, GPS, WiFi, GSM/CDMA
Proceso de adquisición de ubicación geográfica :1. El usuario abre una aplicación web que necesita obtener una ubicación geográfica.
2. La aplicación solicita el navegador a la ubicación geográfica, y el navegador aumenta una consulta para preguntar si el usuario está compartiendo la ubicación geográfica.
3. Suponiendo que el usuario lo permita, el navegador consultará la información relevante de la configuración.
4. El navegador envía información relevante a un servidor de ubicación confiable, y el servidor regresa a la ubicación geográfica específica.
Implementación del estado geográfico HTML5 :1. Implemente la tecnología de obtener usuarios basados en el navegador (no se requiere soporte de back -end)
2. Localice con precisión la ubicación geográfica del usuario (la precisión es de hasta 10 m, dependiendo del equipo)
3. Rastrear continuamente la ubicación geográfica del usuario
4. Interactivamente presente información de ubicación con el mapa de Google o el mapa de Baidu
La API de geolocalización se utiliza para compartir la información actual de geolocalización del usuario con sitios de confianza, que involucra problemas de privacidad y seguridad del usuario. Por lo tanto, cuando un sitio necesita obtener la geolocalización actual del usuario, el navegador le pedirá al usuario que lo permita o rechace.
Primero veamos qué navegadores admiten la API de geolocalización:
IE9.0+, FF3.5+, Safari5.0+, Chrome5.0+, Opera10.6+, iPhone3.0+, Android2.0+
La API de geolocalización existe en el objeto Navigator y contiene solo 3 métodos:
1. GetCurrentPosition // Ubicación actual
2. Watchposition // Ubicación de monitoreo
3. ClearWatch // Clear Monitoring
navigator.geolocation.getCurrentPosition (..., function (error) {
switch (error.code) {
Error de caso. TIMEOUT:
alerta ("Conexión agotada, intente nuevamente");
romper;
Error de caso.Permission_Denied:
alerta ("Rechazó el uso del servicio de intercambio de ubicaciones, la consulta ha sido cancelada");
romper;
Error de caso.Position_Unavailable:
alerta (", lo siento, no puede proporcionar servicios de ubicación a su planeta por el momento");
romper;
}
});
Watchposition es como un rastreador emparejado con ClearWatch.
Watchposition es un poco como el funcionamiento de SetInterval y ClearInterval.
var watchPositionId = Navigator.GeOlocation.watchPosition (Succes_Callback, ERROR_CALLBACK, OPTIONS);
navigator.geolocation.clearWatch (WatchPositionId);
HTML 5 proporciona una serie de API, como la ubicación geográfica para los usuarios, lo que facilita a los usuarios crear aplicaciones geográficas LBS. Primero, en un navegador que admite HTML 5, al abrir la API, preguntará si el usuario acepta usar la API, de lo contrario no estará habilitado, asegurando la seguridad.
1. Encienda para determinar si el navegador admite la API de LBSfunción isGeOlocationApiaVailable ()
{
Var ubicación = "No, la geolocación no es compatible con este navegador";
if (window.navigator.geolocation) {
ubicación = "Sí, la geolocalización es compatible con este navegador";
}
alerta (ubicación);
}
En el ejemplo anterior, la excepción también fue capturada en el método DisplayError;
2. Obtenga la ubicación geográfica del usuarioEsto se realiza usando GetCurrentPosition;
función requestPosition () {
if (nav == null) {
Nav = Window.navigator;
}
if (nav! = null) {
var geoloc = Nav.Geolocation;
if (geoloc! = null) {
geoloc.getCurrentPosition (SuccessCallback);
}
demás {
alerta ("La API de geolocalización no es compatible con su navegador");
}
}
demás {
alerta ("no se encuentra el navegador");
}
}
Cuando la ubicación geográfica se obtiene con éxito, se generará un método de devolución de llamada para procesar el resultado devuelto.
funciones setLocation (val, e) {
document.getElementById (e) .Value = val;
}
Función SuccessCallback (posición)
{
setLocation (posicion.coords.latitude, "latitud"); setLocation (posicion.coords.nlongitude, "longitud");
}
3. Una pregunta muy común es cómo rastrear la ubicación geográfica cambiante de los usuarios. Aquí resumimos las dos API utilizadas.1 posición de reloj
Los ejemplos son los siguientes:
function LearchForPositionUpdates () {
if (nav == null) {
Nav = Window.navigator;
}
if (nav! = null) {
var geoloc = Nav.Geolocation;
if (geoloc! = null) {
watchId = geoloc.watchPosition (SuccessCallback);
} demás {
alerta ("La API de geolocalización no es compatible con su navegador");
}
} demás {
alerta ("no se encuentra el navegador");
}
}
Luego, en SuccessCallback, puede establecer la última ubicación geográfica para mostrar:
function SuccessCallback (Position) {
setText (posicion.coords.latitude, "latitud"); setText (posicion.coords.nongitude, "longitud");
}
Si no desea un seguimiento en tiempo real, puede cancelarlo:
función ClearWatch (WatchID) {
Window.navigator.Geolocation.ClearWatch (WatchId);
}
4. Cómo lidiar con excepcionesCuando se encuentra una excepción, puede atraparlo:
if (geoloc! = null) {
geoloc.getCurrentPosition (SuccessCallback, ErrorCallback);
}
Función ErrorCallback (error) {
VAR Mensaje = "";
switch (error.code) {
Error de caso.Permission_Denied:
mensaje = "Este sitio web no tiene permiso para usar"
+ "La API de geolocalización";
romper;
Error de caso.Position_Unavailable:
mensaje = "La posición actual no se pudo determinar";
romper;
Error de caso.Permission_Denied_TimeOut:
Message = "La posición actual no se pudo determinar"
+ "Dentro del período de tiempo de espera especificado";
romper;
}
if (mensaje == "") {
var strerrorCode = error.code.ToString ();
mensaje = "la posición no se pudo determinar debido a"
+ "Un error desconocido (código:" + StrerrorCode + ").";
}
alerta (mensaje);
}
5. Muestre la ubicación en Google Map (siempre que la API de Google Map esté configurada)función getCurrentLocation ()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition (showmyposition, ducha);
}
demás
{
alerta ("No, la API de geolocalización no es compatible con este navegador");
}
}
función showmyposition (posición)
{
coordenadas var = posicion.coords.latitude+","+posicion.coords.nongitude;
var map_url = "http://maps.googleapis.com/maps/api/staticmap?center="
+coordenadas+"& zoom = 14 & size = 300x300 & sensor = falso";
document.getElementById ("googlemap"). innerhtml = "<img src = '"+map_url+"' />";
}
función de ducha (error)
{
Switch (Error.code)
{
Error de caso.Permission_Denied:
alerta ("Este sitio web no tiene permiso para usar la API de geolocalización")
romper;
Error de caso.Position_Unavailable:
alerta ("La posición actual no se pudo determinar")
romper;
Error de caso. TIMEOUT:
alerta ("La posición actual no se pudo determinar dentro del período de tiempo de salida especificado").
romper;
Error de caso.unknown_error:
alerta ("La posición no se pudo determinar debido a un error desconocido").
romper;
}
}