Obtener coordenadas actuales para mostrarlas en Google Maps

En esta entrada vamos a ver como obtener las coordenadas actuales donde nos encontramos para posteriormente mostrarlas en Google Maps.

Para ello haremos uso de las funciones de geolocalización que tenemos disponibles en HTML5.

Por motivos de seguridad el usuario debe aceptar que se obtenga su posición para poder obtener las coordenadas.

Para obtener las coordenadas utilizaremos el metodo navigator.geolocation.getCurrentPosition() y le pasaremos como parámetro una función que a su vez revivirá un objeto con la información de la posición actual.

Veamos lo más claro con un ejemplo:

<!DOCTYPE html>
<html lang="es">
<head>
<title>Obtener Coordenadas actuales</title>
<meta charset="utf-8" />
< script type="text/javascript" src="https://maps.google.com/maps/api/js"></script>
< script>
function initMap() {
 navigator.geolocation.getCurrentPosition(function(pos) {
   // Creamos un objeto mapa y lo situamos en coordenadas actuales
  var map = new google.maps.Map(document.getElementById('mapa'),         
  {
    center: {lat: pos.coords.latitude, lng: pos.coords.longitude},
    scrollwheel: false,
    zoom: 8
   }
  );
 })
}
</script>
</head>
<body onload="initMap()">
 <h1>Obtener coordenadas Actuales</h1>
 < div id="mapa" style="width: 450px; height: 350px;"> </div>
</body>
</html>

Hay que tener en cuenta que la función getCurrentPosition es asincrona, por lo tanto todo lo que queramos se se ejecute una vez obtenida la posición debemos incluirlo en la función callback que le pasamos como parámetro.

Como podemos ver la función que recibe como parámetro getCurrentPosition recibe a su vez el parámetro pos.

En pos.coords.latitude recibimos la latitud de la localización donde nos encontramos.

En pos.coords.longitude recibimos la longitud de la localización donde nos encontramos.

Además de la latitud y la longitud también podemos obtener las siguientes propiedades siempre que se encuentren disponibles:

Propiedad retorna
coords.latitude La latitud como un número decimal
coords.longitude La longitud como un número decimal
coords.accuracy La precisión de la posición
coords.altitude La altitud en metros por encima del nivel medio del mar
coords.altitudeAccuracy La precisión de altitud de la posición
coords.heading  Los  grados en sentido horario desde el norte
coords.speed  La velocidad en metros por segundo
timestamp La fecha / hora de la respuesta

Si queremos centrar un mapa ya creado en unas las coordenadas actuales podemos utilizar la función setCenter().

map.setCenter(new google.maps.LatLng(pos.coords.latitude, pos.coords.longitude));

Índice   –   <– Capítulo Anterior   –  Capitulo Siguiente –>

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s