Desde que tengo el HTC Magic, me he dado cuenta que las aplicaciones que más uso son aquellas que usan mi geolocalización para mostrarme servicios cercanos a mi ubicación y es que la posición geográfica se ha convertido en una nueva forma de introducir datos a las aplicaciones.
En las aplicaciones web, la W3C se dió cuenta de ello y comenzó a especificar un estandar que ahora Firefox 3.5 tiene integrado y nos permite geolocalizar nuestro navegador.
geo-location-javascript, es el framework cuyo nombre especifica mejor su funcionalidad y además una forma sencilla de usar la geolocalización del usuario mediante Javascript, una interesante alternativa al ya disponible en Google Gears.
// Comprobamos si está disponible
if(geo_position_js.init()) {
// Obtenemos la posición actual
geo_position_js.getCurrentPosition(posicion_encontrada,posicion_no_encontrada );
} else {
// No está disponible
document.getElementById('current').innerHTML="Functionality not available";
}
// Funciones
function posicion_encontrada(data) { ... }
function posicion_no_encontrada(error) { ... }
Mediante el método init()
del objeto geo_position_js
obtenemos un booleano que nos informa de la disponibilidad del servicio de geolocalización. Si este está disponible, pasamos a obtener la posición actual con getCurrentPosition()
, un método que una vez obtenido los datos nos ejecutará uno de sus dos parámetros, 2 funciones que hemos definido previamente para los 2 posibles casos:
1. Posición encontrada: El navegador ha sido capaz de localizar nuestra IP y esta está disponible, en este caso obtendremos un objeto JSON similar a este:
{coords:{latitude:theLatitude,longitude:theLongitude},timestamp:whenTheLocationWasRetrieved}
2. Posición no encontrada: En caso de que sea imposible obtener la localización el método nos devolverá un error en forma JSON con información de lo sucedido.
{message:AMessageDescribingTheError,code:theErrorCode}
Realmente interesante, podeis ver unos ejemplos (con Firefox 3.5 me han funcionado muy bien).
5 comentarios, 0 referencias
+
#