Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/07/2014, 05:30
Avatar de javioreto
javioreto
 
Fecha de Ingreso: enero-2005
Ubicación: C:\España\Bilbao
Mensajes: 1.212
Antigüedad: 19 años, 3 meses
Puntos: 15
Respuesta: Sacar mi posicion desde celular utilizando GPS desde javascript

Buenas,

Te pongo el script que yo utilizo, por lo general suele ser muy preciso:

Código Javascript:
Ver original
  1. <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
  2.  
  3.     <script type="text/javascript">
  4.         var map;
  5.         var latitud;
  6.         var longitud;
  7.         var precision;
  8.        
  9.         $(document).ready(function() {
  10.             localizame();            
  11.         });
  12.        
  13.         function localizame() {
  14.             if (navigator.geolocation) {
  15.                 navigator.geolocation.getCurrentPosition(coordenadas, errores);
  16.             }else{
  17.                 alert('Oops! Tu navegador no soporta geolocalización. Bájate Chrome, que es gratis!');
  18.             }
  19.         }
  20.        
  21.         function coordenadas(position) {
  22.             latitud = position.coords.latitude;
  23.             longitud = position.coords.longitude;
  24.             precision = position.coords.accuracy;  
  25.             cargarMapa();
  26.             document.getElementById('precision').innerHTML="Datos con una precisión de " + precision/1000 + " km, " + precision + " metros";
  27.         }
  28.        
  29.         function errores(err) {
  30.             if (err.code == 0) {
  31.               alert("Oops! Algo ha salido mal");
  32.             }
  33.             if (err.code == 1) {
  34.               alert("Oops! No has aceptado compartir tu posición");
  35.             }
  36.             if (err.code == 2) {
  37.               alert("Oops! No se puede obtener la posición actual");
  38.             }
  39.             if (err.code == 3) {
  40.               alert("Oops! Hemos superado el tiempo de espera");
  41.             }
  42.         }
  43.          
  44.         function cargarMapa() {
  45.             var latlon = new google.maps.LatLng(latitud,longitud);
  46.             var myOptions = {
  47.                 zoom: 17,
  48.                 center: latlon,
  49.                 mapTypeId: google.maps.MapTypeId.ROADMAP
  50.             };
  51.             map = new google.maps.Map($("#map_canvas").get(0), myOptions);
  52.               var image =  'images/icon.png';
  53.             var coorMarcador = new google.maps.LatLng(latitud,longitud);
  54.            
  55.             var punto0 = new google.maps.LatLng(42.3529376, -3.687936000000036); var punto1 = new google.maps.LatLng(40.4167754, -3.7037901999999576); var punto2 = new google.maps.LatLng(40.4167754, -3.7037901999999576); var punto3 = new google.maps.LatLng(40.4167754, -3.7037901999999576); var punto4 = new google.maps.LatLng(42.3439925, -3.6969060000000127); var punto5 = new google.maps.LatLng(42.3471931, -3.680168600000002); var punto6 = new google.maps.LatLng(42.3439925, -3.6969060000000127); var punto7 = new google.maps.LatLng(42.33417499999999, -3.702421299999969); var punto8 = new google.maps.LatLng(42.341679, -3.7272963000000345); var punto9 = new google.maps.LatLng(42.34037499999999, -3.703696799999989); var punto10 = new google.maps.LatLng(42.46394009999999, -2.442012699999964); var punto11 = new google.maps.LatLng(40.4167754, -3.7037901999999576); var punto12 = new google.maps.LatLng(40.4167754, -3.7037901999999576); var locationArray = [coorMarcador,punto0,punto1,punto2,punto3,punto4,punto5,punto6,punto7,punto8,punto9,punto10,punto11,punto12]; var locationNameArray = ['Mi posicion','francisco de vitoria, s/n burgos','Burgos, guzmán de alfarache','universidad de burgos, burgos','guzman de alfarache burgos','guzman de alfarache burgos','calle vitoria burgos','plaza infanta doña elena, 1 ','bonifacio zamora, 5 burgos','calle rollo, burgos','plaza del rey san fernando, 1 burgos','calvo sotelo,22 logroño','calle vitoria 23','calle torija 23']; var locationLat = [0,42.3529376,40.4167754,40.4167754,40.4167754,42.3439925,42.3471931,42.3439925,42.33417499999999,42.341679,42.34037499999999,42.46394009999999,40.4167754,40.4167754]; var locationLong = [0,-3.687936000000036,-3.7037901999999576,-3.7037901999999576,-3.7037901999999576,-3.6969060000000127,-3.680168600000002,-3.6969060000000127,-3.702421299999969,-3.7272963000000345,-3.703696799999989,-2.442012699999964,-3.7037901999999576,-3.7037901999999576];          
  56.              var coord,cont=0;
  57.   for (coord in locationArray) {
  58.  
  59.    if (cont==0){
  60.        new google.maps.Marker({
  61.       position: locationArray[coord],
  62.       map: map,
  63.       draggable:false,
  64.     animation: google.maps.Animation.DROP,
  65.       title: locationNameArray[coord]
  66.     });  
  67.  
  68.    }else{
  69.        var dif1=Math.abs(latitud-locationLat[cont]);
  70.    var dif2=Math.abs(longitud-locationLong[cont]);
  71.  
  72.       if(dif1<0.3 && dif2<0.3){
  73.  
  74.        new google.maps.Marker({
  75.       position: locationArray[coord],
  76.       map: map,
  77.       icon: image,
  78.       draggable:false,
  79.     animation: google.maps.Animation.DROP,
  80.       title: locationNameArray[coord]
  81.     });  
  82.  
  83. }
  84.    }
  85.      
  86.    
  87.     cont++;
  88.   }
  89.            
  90.    
  91.            
  92.         }
  93.     </script>

En function cargar_mapa() como verás hay posiciones que muestro en el mapa obtenidas desde mi base de datos. Solo debes fijarte en la parte donde muestro mi propia ubicación.

Espero que te sea de ayuda!