// JavaScript Document var map, lat, lng, latini, lngini; $(function () { localStorage.posicion = localStorage.posicion || '[]'; var rute = JSON.parse(localStorage.posicion); var nuevaPos; function mostrarRuta(origen, destino) { map.drawRoute({ origin: origen, destination: destino, travelMode: 'driving', strokeColor: '#000000', strokeOpacity: 0.6, strokeWeight: 5 }); map.addMarker({ lat: destino[0], lng: destino[1], infoWindow: { content: '
Destino
' } }); map.setCenter(lat, lng); } function enlazarMarcador(e) { lat = e.latLng.lat(); lng = e.latLng.lng(); nuevaPos = [lat, lng]; if (rute.length > 0) { mostrarRuta(rute[rute.length - 1], nuevaPos); map.fitZoom(); } else { map.addMarker({lat: lat, lng: lng}); } rute.push(nuevaPos); localStorage.posicion = JSON.stringify(rute); } function geolocalizar() { GMaps.geolocate({ success: function (position) { if (rute.length === 0) { lat = position.coords.latitude; lng = position.coords.longitude; nuevaPos = [lat, lng]; rute.push(nuevaPos); localStorage.posicion = JSON.stringify(rute); } else { lat = rute[0][0]; lng = rute[0][1]; } map = new GMaps({ el: '#map', lat: lat, lng: lng, click: enlazarMarcador, tap: enlazarMarcador }); if (rute.length > 0) { map.addMarker({ // marcador en [lat, lng] lat: rute[0][0], lng: rute[0][1], title: 'Tu ubicación', infoWindow: { content: 'Tu ubicación
' } }); latini = lat; lngini = lng; } if (rute.length > 1) { var i; for (i = 1; i < rute.length; i++) { mostrarRuta(rute[i - 1], rute[i]); } map.fitZoom(); } }, error: function (error) { alert('Geolocalización falla: ' + error.message); }, not_supported: function () { alert('Su navegador no soporta geolocalización'); } }); } function limpiar() { if (map) { map.cleanRoute(); map.removeMarkers(); if (latini && lngini) { map.addMarker({ lat: latini, lng: lngini, title: 'Tu ubicación', infoWindow: { content: 'Tu ubicación
' } }); map.setCenter(latini, lngini); } rute = JSON.parse(localStorage.posicion); rute.splice(1, rute.length); } } function inicializar() { latini = undefined; lngini = undefined; limpiar(); rute = []; localStorage.removeItem('posicion'); geolocalizar(); } function compactar(){ if (rute.length > 2) { map.cleanRoute(); map.removeMarkers(); rute.splice(1, rute.length - 2); localStorage.posicion = JSON.stringify(rute); geolocalizar(); } } $('#limpiar').on('click', function () {limpiar();}); $('#compactar').on('click', function () {compactar();}); $('#inicializar').on('click', function () {inicializar();}); $('#limpiar').on('tap', function () {limpiar();}); $('#compactar').on('tap', function () {compactar();}); $('#inicializar').on('tap', function () {inicializar();}); geolocalizar(); });