franjgg:
Al crear el elemento lo haces cada vez que solicitas
obtener_localizacion() sin borrar el anterior, por lo que te crea mapas sucesivos.
Algo sencillo (incluso prescindiendo de jQuery) puede ser esto:
Código Javascript
:
Ver originalvar mapa = document.getElementById("mapa");
mapa.innerHTML = "<img src="+ image_url +">";
y en el <body> creas el div "mapa
Con alguna pequeña modificación (declaración de caracteres, el script en el <head> y otra forma de definición de errores) el código de la página puede ser este:
Código HTML:
Ver original<!DOCTYPE HTML>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/> <script language="javascript"> var intevalo = setInterval('obtener_localizacion()',10000);
function obtener_localizacion() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(mostrar_mapa,gestiona_errores);
}else{
alert('Tu navegador no soporta la API de geolocalizacion');
}
}
function mostrar_mapa(position) {
var latitud = position.coords.latitude;
var longitud = position.coords.longitude;
var image_url = "http://maps.google.com/maps/api/staticmap?sensor=false¢er=" + latitud + "," +
longitud + "&zoom=14&size=300x400&markers=color:red|label:P|" +
latitud + ',' + longitud;
var mapa = document.getElementById("mapa");
mapa.innerHTML = "
<img src="+ image_url +">";
}
function gestiona_errores(err) {
if (error.core == error.PERMISSION_DENIED) {
alert("El usuario no ha concedido los privilegios de geolocalización");
} else if (error.core == error.POSITION_UNAVAILABLE) {
alert("Posicion no disponible");
} else if (error.core == error.TIMEOUT) {
alert("Demasiado tiempo intentando obtener la localización del usuario.");
} else if (error.core == error.UNKNOWN) {
alert("Error desconocido");
} else {
alert("Error insesperado");
}
}
<!--<meta http-equiv="refresh" content="30">-->
<body onload="javascript:obtener_localizacion();"> <p><a href="javascript:obtener_localizacion();">Mostrar Posición
</a></p>
Pueden existir otras formas de corrección del código.