Nueva pregunta

Pregunta:

Fecha: 04-07-2016 18:36:06 (En Español)

Leer coordenadas y trazar ruta en Google Maps[No resuelta]

Buenas, estoy tratando de hacer un trazado de ruta en google maps (como si fuera en tiempo real), o sea que la ruta vaya avanzando. La idea que tengo es usar AJAX y un archivo donde se tenga almacenadas las coordenadas. Pero no tengo muy claro como hacerlo, no se muy bien usar la API de Google Maps.
Amigos de antemano gracias por su ayuda
Etiquetas: AJAX - API - Google API - Google Maps - HTML - Javascript - Maps - Pregunta Votos: 2 - Respuestas: 5 - Vistas: 23 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 05-07-2016 14:16:38 Hola Juan.

    Sería de agradecer que expliques un poco más tu proyeto y muestres algo de código desarrollado.

    Una ruta se compone de un origen y un destino.
    Mi origen ¿es mi posición actual(entiendo que vía geolocalización W3C)?
    Mi destino es ¿una dirección fija ya determinada en página?
      Votos: 2 - Link respuesta
     
  • Fecha: 07-07-2016 16:34:15
    <!DOCTYPE html>
    <html>
      <head>
        <title>Mapa recorrido</title>
    
    
        <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
        <meta charset="utf-8">
        <script type="text/javascript" src="js/jquery.js"></script>
        <style>
          html, body {
            height: 100%;
            margin: 20;
            padding: 2;
          }
          #map {
            height: 80%;
          }
        </style>
      </head>
    
    
    
      <body>
    <input type="submit" name="submit" value="Iniciar Recorrido" class="button art-button" style="zoom: 1;" onclick="startLoop()"/>
    <input type="submit" value="SALIR" onclick = "terminarSalida(),location='/adminSistemas'"/> 
    <SELECT class="form-control" ID="Salida" NAME="Salida" SIZE=1>
    <option>Seleccione una Opción...</option>
    <?php 
    $conexion=mysql_connect("127.0.0.1","root","") or
    die("Problemas en la conexion");
    mysql_select_db("hospital",$conexion) or
    die("Problemas en la selección de la base de datos");  
    mysql_query ("SET NAMES 'utf8'");
    $clavebuscadah=mysql_query("select Codigo_Salida from salidas where Estado='En recorrido' ",$conexion) or
    die("Problemas en el select:".mysql_error());
    while($row = mysql_fetch_array($clavebuscadah))
    {
    echo'<OPTION VALUE="'.$row['Codigo_Salida'].'">'.$row['Codigo_Salida'].'</OPTION>';
    }
     
    ?>
    </SELECT>
    
    
    
        <div id="map"></div>
        <script>
    var map;
    function initMap() {
          var myOptions = {    
         center: new google.maps.LatLng(-17.383354, -66.157290),   
         zoom: 11,      
         mapTypeId: google.maps.MapTypeId.ROADMAP         
          };    
      var map = new google.maps.Map(document.getElementById("map"), myOptions);     
         
        
    
    //startLoop();
    
    }
    
    
    
    function startLoop(Condi) {
    var iFrequency = 15000; 
    var myInterval = 78;
        if(myInterval > 0) clearInterval(myInterval);  
        myInterval = setInterval( "doSomething()", iFrequency ); 
    }
    
    function doSomething(){
        ruta();
    }
    
    function ruta(){
    
         var ruta = [
                   new google.maps.LatLng(-17.386090, -66.149545), 
                   new google.maps.LatLng(-17.384836, -66.148392),
                   new google.maps.LatLng(-17.383720, -66.147351),
                   new google.maps.LatLng(-17.385998, -66.141333),
                   new google.maps.LatLng(-17.388841, -66.140620),
    
                               
                    ]; 
    
      var lineas = new google.maps.Polyline({        
        path: ruta,
        map: map, 
        strokeColor: '#000099', 
        strokeWeight: 5,  
        strokeOpacity: 0.6, 
        clickable: false     }); 
    }
    
    
    function getPosition(){
      if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(function(position) {
          var pos = {
            lat: position.coords.latitude,
            lng: position.coords.longitude
          };
    
    
          showPosition(pos);
        }, function() {
          handleLocationError(true, infoWindow, map.getCenter());
        });
      } else {
       
        handleLocationError(false, infoWindow, map.getCenter());
      }
    }
    
    
    </script>
    
    
    
      </body>
    </html>
    

    lo que quiero es que dadas las coordenadas de arriba vaya tranzando la ruta, como simulando el avance del vehiculo o sea que cada sierto tiempo vaya leyendo el vector de ruta y trace la linea.

    No sé si me explico bien, gracias de antemano por su ayuda amigos
      Votos: 0 - Link respuesta
     
  • Fecha: 08-07-2016 03:54:11 Hola Juan:

    Veo muchas imprecisiones en tu código Javascript. No entro a valorar PHP ya que no tengo acceso a sus datos y tampoco veo que tenga un efecto directo sobre el mapa y el código Javascrpt.

    1.- No veo un enlace a la API de Google Maps en tu HTML. La más básica (yo la inserto en el HEAD aunque puede hacerse posteriormente) es
    <script src="https://maps.googleapis.com/maps/api/js"></script>

    2.-La function initMap(), que es la que generaría el mapa, no la encuentro requerida en ningún momento del HTML
    3.- Veo que quieres trazar una polilínea (Si bien el array es correcto no he entrado a valorar si la presentación en el mapa es coorecta.
    Una ruta es en sí una polilínea con origen y destino, pero una polilínea en sí misma y con 5 puntos no es más que una línea quebrada (varias rectas enlazadas). Carece de origen, destino, puntos intermedios, ...
    4.- La function getPosition() llamaría a una geolocalización pero tampoco es llamada desde ningún punto del HTML. Por cierto, showPosition corresponde a otra función de geolocation W3C que requiere function clear_watch_geolocation() y lo documenté creo que suficientemente en http://www.phpcentral.com/pregunta/231/aporte-geolocalizacion-de-usuario-w3c

    Otro elemento que has de tener muy en cuenta en la programación Javascript es el ámbito de las variables, globales y locales según lo necesites.

    Hay muchas páginas que documentan las diferentes funciones que quieres conjugar (personalmente tengo publicadas y comentadas varias de tu interés en http://www.phpcentral.com/preguntas/91/google-maps

    Te iré ayudando en lo que vayas desarrollando, pero es necesario tu esfuerzo y que vayas "quemando etapas", aprendiendo desde tu propio interés.

    Saludos.
      Votos: 2 - Link respuesta
     
  • Fecha: 08-07-2016 07:56:09 No he visto que mencionan nada sobre la key de google, para poder utilizar estos servicios de geolocalizacion, geocoder, direction service. que alguien me corrija si es que estoy mal. pero yo utilizo la key de google para todo mismo.   Votos: 0 - Link respuesta
     
  • Fecha: 08-07-2016 10:25:21 Hola Andres:

    La geolocalización W3C no necesita expresamente de Google. OpenStreetMap y yo podría trabajarlo ajeno a ambos.

    En http://www.phpcentral.com/pregunta/231/aporte-geolocalizacion-de-usuario-w3c lo trabajo sin las API's

    El tema de Juan es más preciso y más disperso.

    No quiero desarrollar su código sino que él vaya caminando y aprendiendo, como lo hemos hecho y lo seguimos haciendo todos.

    El camino se hace al andar.
      Votos: 1 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión