Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/01/2013, 05:35
franjgg
 
Fecha de Ingreso: marzo-2007
Mensajes: 751
Antigüedad: 17 años, 8 meses
Puntos: 4
Usando API de google maps para geolocalizacion

Hola como estais amigos,


Vereis estoy usando la api de Google maps hacer una geolocalizacion y funciona bien, lo que pasa es que me gustaria que refrescase las coordenadas cada x segundos, tal y como esta el codigo funciona pero no se por que en lugar de refrescar el mapa que muestra coloca otro mapa al lado con las nuevas coordenadas osea que cada vez que refresca coloca un mapa mas con lo que al final tenemos el navegador lleno de mapas.

A ver si alguien sabe como podriamos solucionar esto

Este es el codigo:;

Código HTML:
Ver original
  1. <!DOCTYPE HTML>
  2. <!--<meta http-equiv="refresh" content="30">-->
  3. </head>
  4. <body onload="javascript:obtener_localizacion();">
  5. <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
  6. <script language="javascript">
  7.  
  8. var intevalo = setInterval('obtener_localizacion()',1000);
  9.  
  10. function obtener_localizacion() {
  11.   if (navigator.geolocation) {
  12.         navigator.geolocation.getCurrentPosition(mostrar_mapa,gestiona_errores);
  13.   }else{
  14.     alert('Tu navegador no soporta la API de geolocalizacion');  
  15.   }
  16. }
  17. function mostrar_mapa(position) {
  18.   var latitud = position.coords.latitude;
  19.   var longitud = position.coords.longitude;
  20.   var image_url = "http://maps.google.com/maps/api/staticmap?sensor=false&center=" + latitud + "," +
  21.                    longitud + "&zoom=14&size=300x400&markers=color:red|label:P|" +
  22.                    latitud + ',' + longitud;
  23.     $(document.body).append(
  24.         $(document.createElement("img")).attr("src", image_url).attr('id','map')
  25.     );
  26.  
  27. }
  28. function gestiona_errores(err) {
  29.   if (err.code == 0) {
  30.     alert("error desconocido");
  31.   }
  32.   if (err.code == 1) {
  33.     alert("El usuario no ha compartido su posicion");
  34.   }
  35.   if (err.code == 2) {
  36.     alert("no se puede obtener la posicion actual");
  37.   }
  38.   if (err.code == 3) {
  39.     alert("timeout recibiendo la posicion");
  40.   }
  41. }
  42.  
  43. <p><a href="javascript:obtener_localizacion();">Mostrar Posici&oacute;n</a></p>
  44. </body>
  45. </html>


Como podeis ver lo que hago es llama a la funcion que obtiene las cordenadas cada x segundos, y la funcion mostrar_mapa lo que esta haciendo es crear una imagen con la localizacion, se podria poner un style en esta funcion y que cada vez que crease una imagen con position:absolute; y top:100; por ejemplo las colocase una encima de otra asi solo se veria la ulitma localizacion.

A ver si alguien sabe

Bueno un saludo

Última edición por franjgg; 09/01/2013 a las 05:49