Desde las versiones 3.5 en adelante, el navegador Firefox incorpora una API de geolocalización. La finalidad de ésta es la de proveer los datos de geolocalización a una aplicación web, así se puede mostrar un determinado producto, cambiar el idioma/dialecto, etc.
Detectando si el navegador soporta geolocalización
Primero hay que detectar si se trata de una navegador que soporta geolocalización, para ello hay que usar un código Javascript que se agrega en la sección HEAD del HTML de la página:
<script type="text/javascript"> function getLocation() { if(navigator.geolocation) { navigator.geolocation.getCurrentPosition(function(position) { $('latitude').set('text',position.coords.latitude); $('longitude').set('text',position.coords.longitude); $$('.locationItem').each(function(item) { item.set('text',position.address[item.get('id')]); }); }); } else { alert('Su navegador no soporta geolocalización'); } } </script>
Luego creamos un contenedor para mostrar los datos:
<div id="content"> <div id="ejemplo"> <h2>Ejemplo de Geolocalización</h2> <p>La información mostrada es aproximada.</p> <ul> <li>Latitude: <p id="latitude"></p></li> <li>Longitud:<p id="longitude"></p></li> <li>Calle:<p class="locationItem" id="street"></p></li> <li>Calle núm:<p class="locationItem" id="streetNumber"></p></li> <li>Ciudad:<p class="locationItem" id="city"></p></li> <li>Departamento:<p class="locationItem" id="region"></p></li> <li>País:<p class="locationItem" id="country"></p></li> <li>Código país:<p class="locationItem" id="countryCode"></p></li> <li>Código postal:<p class="locationItem" id="postalCode"></p></li> </ul> <p><button onClick="getLocation();">Localizame</button></p> </div> </div>
Ahora hay que agregar el código Javascript de la función getLocation() que es la que conseguirá los datos de geolocalización, para este ejemplo utilicé también la biblioteca Mootools:
<script type="text/javascript" src="js/mootools-1.2.4-core-nc.js"></script>* <script type="text/javascript"> function getLocation() { if(navigator.geolocation) { navigator.geolocation.getCurrentPosition(function(position) { $('latitude').set('text',position.coords.latitude); $('longitude').set('text',position.coords.longitude); $$('.locationItem').each(function(item) { item.set('text',position.address[item.get('id')]); }); }); } else { alert('Su navegador no soporta geolocalización'); } } </script>
Como ven, implementar la API de Firefox para geolocalización es muy sencilla, además ser muy útil.
Nota: con fines ilustrativos, decorativos y artísticos, en este post se utiliza una captura de Google Maps y una captura de la página de Mozilla.
Tutorial – API de geolocalización de Firefox
Más información (en inglés): developer.mozilla.org/en/using_geolocation
Descargar: Descargar demo