Geolocalización

Desarrollo Web

La geolocalización de los usuarios se ha definido como una medida esencial en gran tipos de web para ofrecer a los usuarios una mejor experiencia de usuario. Con ella, se permite ofrecer una información más relevante y eficaz. Por ejemplo podrá ofrecérsela servicios locales, información en su idioma, etc…

Para conseguir esta geolocalización dependiendo su uso se puede realizar de varias formas como:

Geolocalización con HTML5

Html5 nace con una serie de interesantes librerías que facilitan al programador la interacción del usuario con sus aplicaciones web, ya hemos hablado de otras funciones como el uso de HTML5 para reproducir audio, ara el caso actual usamos la API de geolocalización. Está permite localizar al usuario de una manera sencilla con unas simples instrucciones que nos devolverán la latitud y longitud del usuario entre otra información. Su uso es muy sencillo, con un pequeño ejemplo lo veremos mejor:

function localización () {
    
//Comprobamos que el navegador soporta la API de geolocalizacion
    if (navigator.geolocation) {  

        //Metodo para generar la geolocalización
        navigator.geolocation.getCurrentPosition(funcOK, funcError);
           
    }else{
        alert('El navegador no soporta geolocalización');                  
    }
}

function funcOK(position) {
    //Recogemos la latitud
    var lat = position.coords.latitude;
    //Metodo para generar la geolocalización
    var lon = position.coords.longitude;
		
    $("#span_mensaje").text("Latitud: + lat + " , longitud: " + lon);
	
}

function funcError(error) {
    //Función generada por si hay un error en la geolocalización
    $("#span_mensaje").text("No he podido localizarte");	
}

El objeto posicion se pasa por referencia y si la función tiene exito viene cargado con todos los siguientes datos:
  • Latitude => Variable latitud en grados
  • Longitude => Variable longitud en grados
  • Acurracy => Precisión aproximada en metros
  • Altitude => Altura en metros
  • AltitudeAcurracy => Precisión aproximada de la altura en metros
  • Heading => Orientación en grados

Recibimos como parámetros ambas coordenadas, la única "pega" es que el usuario tiene que aceptar el permiso explícitamente para que funcione, por lo que se necesita una interacción previa con el usuario para poder usarlo.

Petición geolocalización html5

Además, esta información se recoge en la parte de cliente (navegador), por lo que si necesitas realizar alguna función de servidor se deberá hacer uso AJAX. Ejemplo:

Geolocalización IP

La manera más extendida y usual, se recoge la IP de la petición del cliente y mediante el uso de alguna base de datos de IP’s se hace una búsqueda en la misma dando los datos del cliente. El problema de esta función es tener una base de datos completa y actualizada que permita darnos esta información de la manera más exacta y eficaz.

Un buen ejemplo de esto es la BD MaxMind, ofrecen una versión gratuita con soporte para geolocalización a nivel estatal y provincial con una acierto bastante elevado. Para facilitar su uso ofrece librerías y ejemplos en distintos lenguajes como Java, .NET, PHP, javascript, etc...

Para conseguir la IP, basta con recoger la misma de petición web. Para ello usamos las variables del servidor precisas, todos los lenguajes de programación tienen funciones para ello. Ejemplos:


// C# (Varias formas)
Request.UserHostAddress
Request.ServerVariables["REMOTE_ADDR"] 

// PHP
$_SERVER['REMOTE_ADDR']

Si quieres leer más articulos como este, sigueme: @ander_gs
Compartir en: