JavaScript - SOS. Novato. Problemas con ejerccio

   
Vista:
Imágen de perfil de david

SOS. Novato. Problemas con ejerccio

Publicado por david david.frontera@sat-informatica.es (11 intervenciones) el 31/12/2013 17:29:44
Hola!

Estoy realizando un curso de Javascript y HTML5 y uno de los ejercicios se me atraviesa.

El jercicio esta compartido en esta carpeta:

https://drive.google.com/folderview?id=0B87jcr7YT0ofOHVyUGpsd1JkZkU&usp=sharing

La idea es que cuando el explorador abra la web si las variables de localStorage (contador) no está a 0
tengo que redibujar las rutas almacenadas con las coordenadas.

Si alguien me puede ayudar por favor...

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de DAVID

SOS. Novato. Problemas con ejerccio - CODIGO

Publicado por DAVID (11 intervenciones) el 01/01/2014 18:15:23
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>GEOLOCALIZACION</title>
<script type="text/javascript" src="zepto.min.js"></script>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
<script type="text/javascript" src="gmaps.js"></script>
<link rel="stylesheet" type="text/css" href="mypath.css"/>
<script type="text/javascript">
var map, lat, lng;
// variables definidas por mi
var aux_contador = 0;
var latitudes = new Array();
var longitudes = new Array();
var coordenadas = new Array();
 
 
$(function(){
 
// variables locales 
localStorage.contador = (localStorage.contador || 0);
   localStorage.coordenadas = (localStorage.coordenadas || 0);
 
 	function enlazarMarcador(e){
//alert("Dibuja ruta estre marcadores");
// almacenamos las veces que se hace click sobre el mapa  
aux_contador = aux_contador + 1;
localStorage.contador = aux_contador;
// almacenamos las latitudnges y longitudes
latitudes[aux_contador - 1] = lat;
longitudes[aux_contador - 1] = lng;
coordenadas[aux_contador - 1, aux_contador - 1] = [latitudes[aux_contador - 1], longitudes[aux_contador - 1]];
localStorage.coordenadas = JSON.stringify(coordenadas);
 
      // muestra ruta entre marcas anteriores y actuales
   	    map.drawRoute({
 origin: [lat, lng],  // origen en coordenadas anteriores
 // destino en coordenadas del click o toque actual
 destination: [e.latLng.lat(), e.latLng.lng()],
 travelMode: 'driving',
 strokeColor: '#000000',
 strokeOpacity: 0.6,
 strokeWeight: 5
});
 
       lat = e.latLng.lat();   // guarda coords para marca siguiente
   	 lng = e.latLng.lng();
 
       	map.addMarker({ lat: lat, lng: lng});  // pone marcador en mapa
     	 };
 
function geolocalizar(){
GMaps.geolocate({
 	success: function(position)
{
lat = position.coords.latitude;  // guarda coords en lat y lng
lng = position.coords.longitude;
 
map = new GMaps({  // muestra mapa centrado en coords [lat, lng]
el: '#map',
lat: lat,
lng: lng,
click: enlazarMarcador,
tap: enlazarMarcador});
 
map.addMarker({ lat: lat, lng: lng});  // marcador en [lat, lng]
},
error: function(error) { alert('Geolocalizaci&#65533;&#65533;n falla: '+error.message); },
not_supported: function(){ alert("Su navegador no soporta geolocalizaci&#65533;&#65533;n"); },
});
    };
 
 
function borrado()
{
localStorage.clear();
geolocalizar();
};
 
     	$("#inicializar").on('click', function(){ borrado();});
 
 	if (+localStorage.contador > 0)
 	 {
contador = +localStorage.contador;
coordenadas = JSON.parse(localStorage.coordenadas);
for (i=0;i<contador;i++)
{
if (i=0)
{
geolocalizar();
}
else
{
map.drawRoute({
// origen en coordenadas anteriores
 	 origin: [lat, lng],
// destino en coordenadas del click o toque actual
destination: [coordenadas[i][0], coordenadas[i][1]],
travelMode: 'driving',
strokeColor: '#000000',
strokeOpacity: 0.6,
strokeWeight: 5});
 
 
lat = coordenadas[i][0];   // guarda coords para marca siguiente
lng = coordenadas[i][1];
 
map.addMarker({ lat: lat, lng: lng});  // pone marcador en mapa
}
}
}
else
{
geolocalizar();
}
   });
</script>
</head>
<body>
<div align="center">
<a>Geolocalizaci&#65533;&#65533;n   </a><button type="button" id="inicializar"> Inicializar Mapa </button>
</div>
 	<div id="map"></div>
</body>
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

SOS. Novato. Problemas con ejerccio - CODIGO

Publicado por xve (1594 intervenciones) el 02/01/2014 10:30:12
Hola David, tienes un error en la linea 19, ya que no tienes incluida la librería del jquery en tu código...
1
$(function(){

Añade en la cabecera algo como:
1
<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>

Coméntanos si te funciono, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de david

SOS. Novato. Problemas con ejerccio - CODIGO

Publicado por david david.frontera@sat-informatica.es (11 intervenciones) el 05/01/2014 21:10:32
Hola!
Gracias por comentar e intentar ayudarme.
En principio creo que no es ese el error, también lo he probado y no me funciona.
Creo que el error está en la utilización de la función de redibujar la ruta desde las coordenadas primeras a la segunda y de la segunda a la tercera y así sucesivamente hasta que acaba el for.
Se me queda colgado en el for. Supongo que es por que utilizo mal la función.
En la variable localStorage.contador guardo las rutas que se han creado en el mapa y cuando actualizo la página o vuelvo a entrar debo redibujar todas las rutas con las coordenadas que me he guardado. El ejercicio original funciona bien.

Saludos y gracias otra vez.
Si se te ocurre algo no dudes en decirlo. Yo sigo probando.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

SOS. Novato. Problemas con ejerccio - CODIGO

Publicado por xve (1594 intervenciones) el 06/01/2014 11:21:42
Hola David, nos puedes adjuntar los archivos zepto.min.js, gmaps.js y mypath.css?

Es que no lo podemos probar, ya que nos da error al intentar adjuntar dichos archivos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de david

SOS. Novato. Problemas con ejerccio - CODIGO

Publicado por david david.frontera@sat-informatica.es (11 intervenciones) el 06/01/2014 14:02:21
Hola!
Os adjunto los ficheros.

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

SOS. Novato. Problemas con ejerccio - CODIGO

Publicado por juan (1 intervención) el 10/03/2014 22:46:39
esa es la parte avanzada,conseguiste lo de modificar añadiendo boton compactar?
si es asi compartelo porfa,si quieres enviarmelo dorectamente por correo juanbmera@telefonica.net
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar