Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Mostrar mapa de rutas haciendo clic en un link

Estas en el tema de Mostrar mapa de rutas haciendo clic en un link en el foro de Frameworks JS en Foros del Web. Que tal amigos, espero esten bien, les escribo porque tengo l siguiente detallito: En mi software tengo un modulo para mostrar la ruta de los ...
  #1 (permalink)  
Antiguo 01/08/2012, 09:23
Avatar de Bullet  
Fecha de Ingreso: agosto-2005
Ubicación: Margarita, Venezuela
Mensajes: 235
Antigüedad: 18 años, 8 meses
Puntos: 1
Mostrar mapa de rutas haciendo clic en un link

Que tal amigos, espero esten bien, les escribo porque tengo l siguiente detallito:

En mi software tengo un modulo para mostrar la ruta de los barcos en un mapa, lo puse con google maps, e hice la prueba y me coloca las rutas tal cual dependiendo de los parametros de latitud y longitud, hasta ahi todo bien. El problema se me presenta cuando tengo mas de un viaje, y quiero verlo, hice una busqueda en la base de datos por codigo de viaje, y este se me muestra en una tabla en html, aqui el siguiente codigo:

Código PHP:
<?php
require("phpsqlajax_dbinfo.php");

// Opens a connection to a MySQL server
$connection=mysql_connect (localhost$username$password);
if (!
$connection) {
  die(
'Not connected : ' mysql_error());
}

// Set the active MySQL database
$db_selected mysql_select_db($database$connection);
if (!
$db_selected) {
  die (
'Can\'t use db : ' mysql_error());
}
if(isset(
$_GET['cod'])){ //ESTA ES LA VARIABLE QUE ME CARGA EL NUMERO DEL VIAJE
        
        
$code $_GET['cod'];    //ESTA ES LA VARIABLE QUE ME CARGA EL NUMERO DEL VIAJE
        
                
        //Se procede con la consulta
        
$query 'SELECT * FROM cuad_pesca WHERE crno = \''.$code.'\' order by id_cpp asc'
        
$que mysql_query($query);
                        
        
//Comprobar si se ha realizado la consulta
        
if (!$query) {
            die(
'Error: '.mysql_error());
        }
        
//Mensaje de error en caso de que el codigo no exista
        
if (!mysql_num_rows($que)) {
            echo 
'Error en el codigo ingresado, intenta de nuevo'.  $error '';
            exit;
        }
    }
?>
<a href="phpsqlajax_map.htm?id=<?php echo $code?>">VER MAPA</a>//AQUI EL LINK
<table id="Exportar_a_Excel" width=500 align=center > 
<tr bgcolor="0479ff" align=center> 
       <td><b class="heads_tbl">Evento</b></td> 
    <td><b class="heads_tbl">Fecha</b></td> 
       <td><b class="heads_tbl">Latitud</b></td> 
       <td><b class="heads_tbl">Longitud</b></td>
</tr> 
<?
//creo e inicializo la variable para contar el número de filas 
$num_fila 0

//bucle para mostrar los resultados 
while ($damefila=mysql_fetch_object($que)){ 
       echo 
"<tr "
       if (
$num_fila%2==0
           echo 
"bgcolor=#dfecfc"//si el resto de la división es 0 pongo un color 
       
else 
           echo 
"bgcolor=#92c2fc"//si el resto de la división NO es 0 pongo otro color 
       
echo ">"
?> 
           <td align="center" class="data"><? echo $damefila->avbevento;?></td> 
         <td align="center" class="data"><? echo $damefila->fechahora;?></td> 
           <td align="center" class="data"><? echo $damefila->lat_dec;?></td> 
           <td align="center" class="data"><? echo $damefila->long_dec;?></td> 
      </tr> 
<? 
       
//aumentamos en uno el número de filas 
       
$num_fila++; 
//cierro el while 
?>    
</table>
El enlace "ver mapa", me lleva a otro archivo .php que me genera los datos en un archivo .XML, e aqui donde tengo el detalle, cuando voy a cargar el archivo XML, me lo carga vacio, por lo cual no me carga los puntos en el mapa, aqui el codigo de este archivo:

Código PHP:
<?php
require("phpsqlajax_dbinfo.php");

function 
parseToXML($htmlStr

$xmlStr=str_replace('<','&lt;',$htmlStr); 
$xmlStr=str_replace('>','&gt;',$xmlStr); 
$xmlStr=str_replace('"','&quot;',$xmlStr); 
$xmlStr=str_replace("'",''',$xmlStr); 
$xmlStr=str_replace("&",'&amp;',$xmlStr); 
return 
$xmlStr


// Opens a connection to a MySQL server
$connection=mysql_connect (localhost$username$password);
if (!
$connection) {
  die(
'Not connected : ' mysql_error());
}

// Set the active MySQL database
$db_selected mysql_select_db($database$connection);
if (!
$db_selected) {
  die (
'Can\'t use db : ' mysql_error());
}

// Select all the rows in the markers table
$query "SELECT * FROM cuad_pesca WHERE 1";
$result mysql_query($query);
if (!
$result) {
  die(
'Invalid query: ' mysql_error());
}

header("Content-type: text/xml");

// Start XML file, echo parent node
echo '<markers>';

// Iterate through the rows, printing XML nodes for each
while ($row = @mysql_fetch_assoc($result)){
  
// ADD TO XML DOCUMENT NODE
  
echo '<marker ';
  echo 
'crno="' parseToXML($row['crno']) . '" ';
  echo 
'fecha="' parseToXML($row['fechahora']) . '" ';
  echo 
'even="' parseToXML($row['avbevento']) . '" ';
  echo 
'lat="' parseToXML($row['lat_dec']) . '" ';
  echo 
'long="' parseToXML($row['long_dec']) . '" ';
  echo 
'/>';
}

// End XML file
echo '</markers>';

?>
el detalle que tengo es como pasar la variable $code para que me tome los datos en el archivo donde me genera el XML, y asi poder mostrar los puntos en el mapa. Espero su ayuda. Saludos
  #2 (permalink)  
Antiguo 01/08/2012, 10:17
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Mostrar mapa de rutas haciendo clic en un link

El enlace "ver mapa", me lleva a otro .¿.archivo.php.?. alomejor tienes el error en ese archivo¿?

en el archivo xml que generas a pesar de que en ver mapa pasas el $code numero de viaje por url , en esta pagina no veo nada sobre ese code como sabe ese archivo que estas pasando ese codigo , lo haces a traves del .¿.archivo.php.?.


puede ser posible que en esta consulta debas pasar el $code¿? por que pasas where 1 deberia ser en todo caso where id=1 o el campo que tu uses crno = creo¿?

$query = "SELECT * FROM cuad_pesca WHERE 1";
  #3 (permalink)  
Antiguo 01/08/2012, 10:22
Avatar de Bullet  
Fecha de Ingreso: agosto-2005
Ubicación: Margarita, Venezuela
Mensajes: 235
Antigüedad: 18 años, 8 meses
Puntos: 1
Respuesta: Mostrar mapa de rutas haciendo clic en un link

El enlace "ver mapa" me lleva a un archivo html que es donde tengo el mapa, y este llama al archivo php que contiene el codigo del segundo recuadro, este genera una especie de archivo xml para cargar los datos en el mapa, aqui es donde tengo la duda de como pasar el $code, como traer ese parametro para luego hacer la consulta..
  #4 (permalink)  
Antiguo 01/08/2012, 10:26
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Mostrar mapa de rutas haciendo clic en un link

estas pasando un dato $_GET por html yo no se si esto es valido o no pero mi experiencia me dice que no , un ejemplo es crear una session con el $code en la pagina 1 y añadirlo en el xml despues y pasarlo en la consulta
  #5 (permalink)  
Antiguo 01/08/2012, 10:31
Avatar de Bullet  
Fecha de Ingreso: agosto-2005
Ubicación: Margarita, Venezuela
Mensajes: 235
Antigüedad: 18 años, 8 meses
Puntos: 1
Respuesta: Mostrar mapa de rutas haciendo clic en un link

El dato $_GET lo uso para mostrar los datos de la consulta en una tabla en php, que es donde uso la variable $code, y la tabla me carga los datos bien, lo que quiero es que estos mismos datos se me muestren en el mapa al yo darle clic al enlace "Ver Mapa"....
  #6 (permalink)  
Antiguo 01/08/2012, 10:35
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Mostrar mapa de rutas haciendo clic en un link

pues lo que te digo que no puedes mandar ese dato por una pagina html

miweb.com/mapas/mapas.html?code=$code esto no es valido
miweb.com/mapas/mapas.php?code=$code esto si es valido asi si puedes pasar el dato $_GET por la url

aunque te recomiendo sessiones , al pasar datos por la url que ejecutan codigo mysql (consultas , select etc...) puedes dejar la puerta abierta a injection sql como no lo hagas bien

te recomiendo o pasar en vez de a un html pasar a un php y dentro de ese php el html y el xml y pasar el code por la url

o creas la session y el link normal hacia ver mapas
en el xml recojes esa session para hacer la consulta
  #7 (permalink)  
Antiguo 01/08/2012, 11:58
Avatar de Bullet  
Fecha de Ingreso: agosto-2005
Ubicación: Margarita, Venezuela
Mensajes: 235
Antigüedad: 18 años, 8 meses
Puntos: 1
Respuesta: Mostrar mapa de rutas haciendo clic en un link

Bueno, voy a intentar hacerlo de la primera forma, sino vuelvo para que medes una manito, vale.. Un abrazo y gracias por la ayuda!!


EDITO

Oye amigo, me da un errror cuando lo hago todo junto, me da el siguiente error:

This page contains the following errors:

error on line 1 at column 20: Extra content at the end of the document
Below is a rendering of the page up to the first error.



EDITO2

Que mas amigo, logre meter el codigo html y el codigo para el archivo XML, y me carga el mapa, pero me arroja el siguiente error:

Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\pruebas\mapa\phpsqlajax_genxml2.php :2) in C:\AppServ\www\pruebas\mapa\phpsqlajax_genxml2.php on line 177

elimine los espacios que estan entre el inicio y el fin del codigo php y nada, no encuentro como solucionarlo...

Última edición por Bullet; 01/08/2012 a las 13:45
  #8 (permalink)  
Antiguo 01/08/2012, 14:16
txemaarbulo
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Mostrar mapa de rutas haciendo clic en un link

Cita:
Iniciado por Bullet Ver Mensaje
Oye amigo, me da un errror cuando lo hago todo junto, me da el siguiente error:

This page contains the following errors:

error on line 1 at column 20: Extra content at the end of the document
Below is a rendering of the page up to the first error.



EDITO2

Que mas amigo, logre meter el codigo html y el codigo para el archivo XML, y me carga el mapa, pero me arroja el siguiente error:

Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\pruebas\mapa\phpsqlajax_genxml2.php :2) in C:\AppServ\www\pruebas\mapa\phpsqlajax_genxml2.php on line 177

elimine los espacios que estan entre el inicio y el fin del codigo php y nada, no encuentro como solucionarlo...
He estado revisando los códigos y, sin poder analizar el XML, he querido tratar de localizar el primer error (entiendo que el segundo llegó forzado por lo que trataste de hacer).

Comprueba si es éste, en el segundo código PHP que muestras:
Código PHP:
Ver original
  1. <?php
  2. require("phpsqlajax_dbinfo.php");
  3.  
  4. function parseToXML($htmlStr)  
  5. {  
  6. $xmlStr=str_replace('<','&lt;',$htmlStr);  
  7. $xmlStr=str_replace('>','&gt;',$xmlStr);  
  8. $xmlStr=str_replace('"','&quot;',$xmlStr);  
  9. $xmlStr=str_replace("'",''',$xmlStr);  
  10. $xmlStr=str_replace("&",'&amp;',$xmlStr);  
  11. return $xmlStr;  
  12. }   /* ... */

Si te fijas, lo que yo tengo como línea 9, tiene tres comillas simples seguidas. Ello anula las siguientes líneas y rompe la transformación del XML Corregida sería así:
Código PHP:
Ver original
  1. $xmlStr=str_replace("'",''',$xmlStr);
O tal vez (tendría más sentido)
Código PHP:
Ver original
  1. [HIGHLIGHT="PHP"]$xmlStr=str_replace("'",'"',$xmlStr);
[/HIGHLIGHT]
(El dichoso problema de las comillas)

Ojala sea solamente ésto. Saludos.
  #9 (permalink)  
Antiguo 01/08/2012, 14:26
Avatar de Bullet  
Fecha de Ingreso: agosto-2005
Ubicación: Margarita, Venezuela
Mensajes: 235
Antigüedad: 18 años, 8 meses
Puntos: 1
Respuesta: Mostrar mapa de rutas haciendo clic en un link

Que tal amigo, el codigo de esa linea es el siguiente:

Código PHP:
$xmlStr=str_replace("'",'',$xmlStr); 
Me supongo que cuando pase el codigo fuente para aca, se cambio por las 3 comillas, ojo no me di cuenta, incluso revise los scripts que hice y estan con el "'"(esto va donde estan las 3 comillas, nose porque carajo hace la conversion)

Quiero volver a lo primero que intente, que ingresando el codigo o nuero del viaje, se me muestre el mapa directo con las posiciones, sin ver la tabla, pero solo me carga el archivo xml, el mapa lo carga vacio.. el codigo que uso para cargar el mapa es el siguiente:

Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>Google Maps AJAX + MySQL/PHP Example</title>
    <script src="https://maps.google.com/maps?file=api&v=2&key=ABQIAAAAjU0EJWnWPMv7oQ-jjS7dYxTPZYElJSBeBUeMSX5xXgq6lLjHthSAk20WnZ_iuuzhMt60X_ukms-AUg"
            type="text/javascript"></script>

    <script type="text/javascript">
    //<![CDATA[
	
	var iconder = new GIcon(); //DERIVA
    iconder.image = 'deriva.png';
    iconder.iconSize = new GSize(28, 32);
    iconder.shadowSize = new GSize(28, 32);
    iconder.iconAnchor = new GPoint(30, 20);
    iconder.infoWindowAnchor = new GPoint(5, 1);

    var iconBlue = new GIcon(); //NAVEGAR
    iconBlue.image = 'nav.png';
    iconBlue.iconSize = new GSize(28, 32);
    iconBlue.shadowSize = new GSize(28, 32);
    iconBlue.iconAnchor = new GPoint(30, 20);
    iconBlue.infoWindowAnchor = new GPoint(5, 1);
	
	var iconil = new GIcon(); //INILAN
    iconil.image = 'inil.png';
    iconil.iconSize = new GSize(36, 32);
    iconil.shadowSize = new GSize(28, 32);
    iconil.iconAnchor = new GPoint(6, 20);
    iconil.infoWindowAnchor = new GPoint(5, 1);
	
	var iconfl = new GIcon(); //FINLAN
    iconfl.image = 'finl.png';
    iconfl.iconSize = new GSize(36, 32);
    iconfl.shadowSize = new GSize(28, 32);
    iconfl.iconAnchor = new GPoint(30, 20);
    iconfl.infoWindowAnchor = new GPoint(5, 1);
	
	var iconir = new GIcon(); //INIREC
    iconir.image = 'inir.png';
    iconir.iconSize = new GSize(36, 32);
    iconir.shadowSize = new GSize(28, 32);
    iconir.iconAnchor = new GPoint(6, 20);
    iconir.infoWindowAnchor = new GPoint(5, 1);
	
	var iconfr = new GIcon(); //FINREC
    iconfr.image = 'finr.png';
    iconfr.iconSize = new GSize(36, 32);
    iconfr.shadowSize = new GSize(28, 32);
    iconfr.iconAnchor = new GPoint(30, 20);
    iconfr.infoWindowAnchor = new GPoint(5, 1);
	
	
	var iconmaf = new GIcon(); //MAMIF
    iconmaf.image = 'mamif.png';
    iconmaf.iconSize = new GSize(28, 32);
    iconmaf.shadowSize = new GSize(28, 32);
    iconmaf.iconAnchor = new GPoint(6, 20);
    iconmaf.infoWindowAnchor = new GPoint(5, 1);

    var iconRed = new GIcon(); //LLEGADA
    iconRed.image = 'llegada.png';
    iconRed.iconSize = new GSize(28, 32);
    iconRed.shadowSize = new GSize(22, 20);
    iconRed.iconAnchor = new GPoint(6, 20);
    iconRed.infoWindowAnchor = new GPoint(5, 1);
	
	var iconsal = new GIcon(); //SALIDA
    iconsal.image = 'salida.png';
    iconsal.iconSize = new GSize(28, 32);
    iconsal.shadowSize = new GSize(22, 20);
    iconsal.iconAnchor = new GPoint(6, 20);
    iconsal.infoWindowAnchor = new GPoint(5, 1);
	
	var icontort = new GIcon(); //TORTUGA
    icontort.image = 'tortuga.png';
    icontort.iconSize = new GSize(28, 32);
    icontort.shadowSize = new GSize(22, 20);
    icontort.iconAnchor = new GPoint(6, 20);
    icontort.infoWindowAnchor = new GPoint(5, 1);
	

   var customIcons = [];
    customIcons[3] = iconder; //mamif
	customIcons[4] = iconmaf; //mamif
    customIcons[8] = iconBlue;//nav
	customIcons[14] = iconsal;//salida
	customIcons[15] = iconRed;//llegada
	customIcons[17] = icontort;//llegada
	customIcons[23] = iconil;//inilan
	customIcons[24] = iconir;//inirec
	customIcons[25] = iconfl;//finlan
	customIcons[26] = iconfr;//finrec
	
    
	
    function load() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
        map.setCenter(new GLatLng(10.466666666666667, -64.18333333333334), 13);

        GDownloadUrl("phpsqlajax_genxml2.php", function(data) {
          var xml = GXml.parse(data);
          var markers = xml.documentElement.getElementsByTagName("marker");
          for (var i = 0; i < markers.length; i++) {
            var name = markers[i].getAttribute("crno");
            var address = markers[i].getAttribute("fecha");
            var type = markers[i].getAttribute("even");
            var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                                    parseFloat(markers[i].getAttribute("long")));
            var marker = createMarker(point, name, address, type);
            map.addOverlay(marker);
          }
        });
      }
    }

    function createMarker(point, name, address, type) {
      var marker = new GMarker(point, customIcons[type]);
      var html = "<b>" + name + "</b> <br/>" + address + "  " + type + "</br> " + point;
      GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(html);
      });
      return marker;
    }
    //]]>
  </script>

<style type="text/css">
  #apDiv1 {
	position:absolute;
	left:1219px;
	top:14px;
	width:182px;
	height:603px;
	z-index:1;
}
  </style>
  </head>

  <body onload="load()" onunload="GUnload()">
    <div id="apDiv1">
      <p>EVENTOS/SUCESOS:</p>
      <p><img src="deriva.png" alt="" width="32" height="37" />DERIVA</p>
      <p><img src="mamif.png" alt="" width="32" height="37" />MAMIF</p>
<p><img src="nav.png" alt="" width="32" height="37" />NAV</p>
<p><img src="salida.png" alt="" width="32" height="37" />SALIDA</p>
<p><img src="llegada.png" alt="" width="32" height="37" />LLEGADA</p>
<p><img src="tortuga.png" alt="" width="32" height="37" />TORTUGA</p>
<p><img src="inil.png" alt="" width="32" height="37" />INILAN</p>
<p><img src="finl.png" alt="" width="32" height="37" />FINLAN</p>
<p><img src="inir.png" alt="" width="32" height="37" />INIREC</p>
<p><img src="finr.png" alt="" width="32" height="37" />FINREC</p>
    </div>
    <div id="map" style="width: 1200px; height: 640px"></div>
</body>
</html> 
PD: Amigo una pregunta, no hay forma de meter un enlace en el archivo que me genera el XML? porque asi verifico dicho archivo y luego llamo al mapa, y resuelto el problema...

Última edición por Bullet; 01/08/2012 a las 14:38
  #10 (permalink)  
Antiguo 01/08/2012, 15:03
txemaarbulo
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Mostrar mapa de rutas haciendo clic en un link

Me ha costado un poco desempolvar viejos archivos, ya que estás con la V2 de Google API. Por suerte la lectura de éstos es igual.

Los códigos los veo bien. Lo que en su momento me dio sus dolores de cabeza con la lectura de los XML y que veo que te falta es el archivo downloadxml.js.

Para que hagas una prueba rápida, en el <head>, inmediatamente antes que el enlace a la API de Google maps, enlaza con este javascript.
Para tu prueba marca esta ruta absoluta
Código Javascript:
Ver original
  1. http://www.digitaleando.com/mundogeo/js/downloadxml.js
Si te funciona y te resulta complicado hacerlo o bajarlo de internet, me lo pides por privado.
  #11 (permalink)  
Antiguo 01/08/2012, 15:24
txemaarbulo
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Mostrar mapa de rutas haciendo clic en un link

Cita:
Iniciado por Bullet Ver Mensaje
PD: Amigo una pregunta, no hay forma de meter un enlace en el archivo que me genera el XML? porque asi verifico dicho archivo y luego llamo al mapa, y resuelto el problema...
Preparando la artillería por lo que puedas ver, quiero limitarme a tu P.D., que tal vez lo necesites.

Sabes que el archivo se llama phpsqlajax_genxml2.php Y, aunque lo estás leyendo como XML, quiero entender que tenga la misma estructura.

Para buscar la ruta absoluta, entiendo que está en el mismo nivel que el HTML que has adjuntado. Tanto si lo tienes en hosting como si trabajas en local, uno y otro archivos están en el mismo directorio y nivel.
  #12 (permalink)  
Antiguo 01/08/2012, 15:37
Avatar de Bullet  
Fecha de Ingreso: agosto-2005
Ubicación: Margarita, Venezuela
Mensajes: 235
Antigüedad: 18 años, 8 meses
Puntos: 1
Respuesta: Mostrar mapa de rutas haciendo clic en un link

Que tal amigo, bueno les agradezco su ayuda, ahi estoy tratando de solventar ese detallito, puesto que ahorita son las 5 pm en venezuela, ya sali del trabajo y los archivos los tengo alla, mañana en lo que llegue a mi oficina hago las pruebas aqui posteadas y vielvo a comentar. Un gran abrazo...
  #13 (permalink)  
Antiguo 02/08/2012, 07:14
Avatar de Bullet  
Fecha de Ingreso: agosto-2005
Ubicación: Margarita, Venezuela
Mensajes: 235
Antigüedad: 18 años, 8 meses
Puntos: 1
Respuesta: Mostrar mapa de rutas haciendo clic en un link

Que mas amigo txemaarbulo, buenos dias desde venezuela, hice la prueba que me comentaste pero el mapa me lo carga igual , sin las pos1ciones.

tambien cambie la variable output_buffering a ON, para ver si me cargaba el enlace bien, pero me da el siguiente error, supongo que tiene que ver con la generacion del XML..

This page contains the following errors:

error on line 1 at column 19: Extra content at the end of the document
Below is a rendering of the page up to the first error.


Espero tu respuesta..
  #14 (permalink)  
Antiguo 02/08/2012, 08:23
txemaarbulo
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Mostrar mapa de rutas haciendo clic en un link

Ambos suponemos lo mismo

Cita:
Iniciado por Bullet Ver Mensaje
... supongo que tiene que ver con la generacion del XML..
Doy por hecho (es el primer paso) que el archivo XML que debería leer el javascrip de tu página HTML (me refiero a la que me enviabas ayer), existe y en la ruta indicada.

Dado que el mapa te muestra sin los marcadores, se ha de comprobar paso a paso, sobre el javascript de la página HTML.

Partimos de la misma cabecera con el archivo que te indicaba para comprobar el XML y el Javascrip. Te muestro con mi archivo downloadxml.js, que después veremos si es necesario (jQuery no lo precisa pero no es el caso) Si nos sobra, tampoco molestará y lo veremos al final.
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2.  
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4.     <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
  5.     <title>Google Maps AJAX + MySQL/PHP Example</title>
  6.     <script type="text/javascript" src="http://www.digitaleando.com/mundogeo/js/downloadxml.js"></script>
  7.     <script src="https://maps.google.com/maps?file=api&v=2&key=ABQIAAAAjU0EJWnWPMv7oQ-jjS7dYxTPZYElJSBeBUeMSX5xXgq6lLjHthSAk20WnZ_iuuzhMt60X_ukms-AUg" type="text/javascript"></script>

Ve insertado, por cada sección del javascript (el que sigue automáticamente), algo que yo utilizo permanentemente para comprobar cada parte, si entra en la función y si la variable o el documento están bien conformados.
Código Javascript:
Ver original
  1. function load() {
  2.       if (GBrowserIsCompatible()) {
  3.         var map = new GMap2(document.getElementById("map"));
  4.         map.addControl(new GSmallMapControl());
  5.         map.addControl(new GMapTypeControl());
  6.         map.setCenter(new GLatLng(10.466666666666667, -64.18333333333334), 13);
  7.  
  8.         GDownloadUrl("phpsqlajax_genxml2.php", function(data) {
  9.           var xml = GXml.parse(data);
  10.           var markers = xml.documentElement.getElementsByTagName("marker");
  11.     alert ('OK');
  12.     alert (xml);
  13.           for (var i = 0; i < markers.length; i++) {
  14.             var name = markers[i].getAttribute("crno");
  15.             var address = markers[i].getAttribute("fecha");
  16.             var type = markers[i].getAttribute("even");
  17.             var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
  18.                                     parseFloat(markers[i].getAttribute("long")));
  19.             var marker = createMarker(point, name, address, type);
  20.             map.addOverlay(marker);
  21.           }
  22.         });
  23.       }
  24.     }

Te deberían salir dos alert seguidos. Uno con el OK (es texto que hemos puesto pero también nos indica que la función entra) y el segundo con [object XMLDocument] o algo parecido. Ello demuestra que el XML, que en realidad lo invocamos como phpsqlajax_genxml2.php (archivo PHP) existe y llega a la función. Si no aparece el segundo alert, es que la ruta de acceso está mal, o no existe el archivo.

Si mál no recuerdo se generaba a partir de phpsqlajax_dbinfo.php del que se hacían las correcciones de ( > < " etc. ) para leerlo

Superada esta fase, pasamos a una segunda comprobación. Cambiamos la posición de nuestros alert:
Código Javascript:
Ver original
  1. GDownloadUrl("phpsqlajax_genxml2.php", function(data) {
  2.           var xml = GXml.parse(data);
  3.           var markers = xml.documentElement.getElementsByTagName("marker");
  4.           for (var i = 0; i < markers.length; i++) {
  5.             var name = markers[i].getAttribute("crno");
  6.             var address = markers[i].getAttribute("fecha");
  7.             var type = markers[i].getAttribute("even");
  8.             var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
  9.                                     parseFloat(markers[i].getAttribute("long")));
  10.             var marker = createMarker(point, name, address, type);
  11.     alert ('OK');
  12.     alert (name);
  13.             map.addOverlay(marker);
  14.           }
  15.         });
  16.       }
  17.     }
Ahora, después del OK el segundo alert nos transcribe el "name" del XML y lo repetirá por el for tantas veces como names, address o markers tengas. Si no están definidos, saltarán solamente los OK, tantas veces como puntos tengas.

Puedes ir cambiando el alert (name); por alert (address);, alert (type); ... para comprobar que todo esté bien.

Y seguimos en contacto
  #15 (permalink)  
Antiguo 02/08/2012, 08:40
Avatar de Bullet  
Fecha de Ingreso: agosto-2005
Ubicación: Margarita, Venezuela
Mensajes: 235
Antigüedad: 18 años, 8 meses
Puntos: 1
Respuesta: Mostrar mapa de rutas haciendo clic en un link

Ok amigo, lei bien el codigo y tu respuesta, estoy ahorita revisando y haciendo respaldo de los datos que ingrese en la base, despues de eso pruebo lo que me acabas de pasar y vuelvo a escribirte!!!
  #16 (permalink)  
Antiguo 02/08/2012, 13:09
Avatar de Bullet  
Fecha de Ingreso: agosto-2005
Ubicación: Margarita, Venezuela
Mensajes: 235
Antigüedad: 18 años, 8 meses
Puntos: 1
Respuesta: Mostrar mapa de rutas haciendo clic en un link

Listo amigo, hice las comprobaciones que me comentaste y tal cual como tu dices, todo esta bien, en el ultimo si se paseaba por todos los campos y cambie el nombre de la variable y me pasaba los datos que muestro en el mapa, es decir, el html y el xml estan bien.. Espero por tu respuesta...
  #17 (permalink)  
Antiguo 02/08/2012, 13:54
txemaarbulo
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Mostrar mapa de rutas haciendo clic en un link

Cita:
Iniciado por Bullet Ver Mensaje
Listo amigo, hice las comprobaciones que me comentaste y tal cual como tu dices, todo esta bien, en el ultimo si se paseaba por todos los campos y cambie el nombre de la variable y me pasaba los datos que muestro en el mapa, es decir, el html y el xml estan bien.. Espero por tu respuesta...
Es un buen síntoma que hayamos llegado bien a este punto.

He estado revisando mis viejos mapas para trasladarte el nuevo código Javascript.
Lo que va barrado y anulado es lo que he quitado. Lo que va nuevo, va con otro margen y comentado después. (me ahorro el listados de los iconos ).
Código Javascript:
Ver original
  1. <script type="text/javascript">
  2.     //<![CDATA[
  3.        
  4.  // ahorro el listado de iconos que supongo estarán bien    
  5.    
  6.     function load() {
  7.       if (GBrowserIsCompatible()) {
  8.         var map = new GMap2(document.getElementById("map"));
  9.         map.addControl(new GSmallMapControl());
  10.         map.addControl(new GMapTypeControl());
  11.         map.setCenter(new GLatLng(10.466666666666667, -64.18333333333334), 13);
  12.  
  13.         GDownloadUrl("phpsqlajax_genxml2.php", function(data) {
  14.           var xml = GXml.parse(data);
  15.           var markers = xml.documentElement.getElementsByTagName("marker");
  16.           for (var i = 0; i < markers.length; i++) {
  17.             var name = markers[i].getAttribute("crno");
  18.             var address = markers[i].getAttribute("fecha");
  19.             var type = markers[i].getAttribute("even");
  20.             var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
  21.                                     parseFloat(markers[i].getAttribute("long")));
  22.      //       var marker = createMarker(point, name, address, type); ¿¿ habrá sido esta pequeña errata ??
  23.     marker = new GMarker(point, customIcons[type]); //
  24.             map.addOverlay(marker);
  25.     marker.openInfoWindowHtml("<b>" + name + "</b> <br/>" + address + "  " + type + "</br> " + point); // tu html
  26.           }
  27.         });
  28.       }
  29.     }
  30. /*
  31.     function createMarker(point, name, address, type) {
  32.       var marker = new GMarker(point, customIcons[type]);
  33.       var html = "<b>" + name + "</b> <br/>" + address + "  " + type + "</br> " + point;
  34.       GEvent.addListener(marker, 'click', function() {
  35.         marker.openInfoWindowHtml(html);
  36.       });
  37.       return marker;
  38.     }
  39. */
  40.     //]]>
  41.   </script>
Lo que he hecho fundamentalmente es incluir los elementos de la function createMarker() arriba y eliminar esta función.
Y lo que he visto diferente es marker = new GMarker(point, customIcons[type]); en vez de lo que tu defines marker = createMarker(point, name, address, type);

Si con esto no te anda, terminaré por remitirte a la V3 (que, si no lo sabes lo tendrás que hacer antes de Mayo 2013)

Saludos y me lo cuentas.
  #18 (permalink)  
Antiguo 02/08/2012, 14:14
Avatar de Bullet  
Fecha de Ingreso: agosto-2005
Ubicación: Margarita, Venezuela
Mensajes: 235
Antigüedad: 18 años, 8 meses
Puntos: 1
Respuesta: Mostrar mapa de rutas haciendo clic en un link

Ok, hasta ahora me carga el mapa de las dos formas, como lo hice desde un principio y como tu lo corregiste, pero ejecutando directamente el archivo que contiene el codigo para el mapa, ahora, como puedo mostrar el mapa cuando haga la consulta de busqueda en la bd? e ingresado el numero del crucero, pero me sgue cargando le mapa vacio...


PD: Hice la prueba con los 4 viajes que tengo en la base de datos, y me da las rutas diferentes, pero tuve que separarlos por tablas para poder cargarlos, lo que quiero es tenerlos en una sola, y que cuando ingrese el numero del viaje, me muestre el mapa de el viaje numero 22001, por ejemplo...

Última edición por Bullet; 02/08/2012 a las 14:20
  #19 (permalink)  
Antiguo 02/08/2012, 14:48
txemaarbulo
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Mostrar mapa de rutas haciendo clic en un link

Difícilmente pueda llegar a darte la solución completa.

Mostrabas en tu primera entrada, dos archivos: uno recogía por while los datos y los pasaba a una tabla, y un segundo php que hacía las correcciones para hacer legible lo que leemos como XML.

Sin ver todo el paquete de archivos, mal puedo decirte como se cargan automáticamente. Ahora sabes cómo tienen que llegarte.

Lo más próximo que he trabajado es con un directorio (múltiples XML), diréctamente pasados a través de array al javascript. En este caso utilizo un archivo XML por unidad que se va reescribiendo cada vez que llegan nuevos datos. Esto, llegado por geocodificación, se carga al momento y se traslada al mapa cada vez que lo recargas. En ajax, diría que en fracciones de segundo. Pero es una estructura que, desde 0 podría tardar en hacerse entre 10 y 15 días.

Si lo observas, flightradar24.com en el tráfico de aviones lo hace desde un PHP de varios miles de líneas que se genera cada 15 segundos y con ese lapso lo traslada al mapa.
  #20 (permalink)  
Antiguo 02/08/2012, 16:01
Avatar de Bullet  
Fecha de Ingreso: agosto-2005
Ubicación: Margarita, Venezuela
Mensajes: 235
Antigüedad: 18 años, 8 meses
Puntos: 1
Respuesta: Mostrar mapa de rutas haciendo clic en un link

Woow, esta excelente la pagina, muy muy completa, gracias por compàrtirla amigo.

Bueno, lo mio no es tan avanzado y complejo, pero te cuento como lo estoy haciendo ahorita, para que tengas una idea:

Los datos los meto en una tabla mas grande, que tiene no solo las coordenadas geograficas, tambien tyiene velocidad y rumbo del barco, temperatura del agua, condiciones climaticas, y en el caso de la pesca, la captura por especie, en kilogramos, yo lo que hice fue tomar solo las coordenadas para probar la ruta de navegacion y ver como me mostraba los datoas en el mapa, como tengo 4 cruceros o viajes, cree 4 tablas solo con las posiciones de latitud y longitud, 1 para cada viaje, y asi lo estoy haciendo, ojo, solo lo estoy utilizando para ver la ruta, por ahora, porque primero se hacia en excel, pero quisiera de alguna manera incorporarlo al software, no habra una manera mas sencilla de hacerlo?

Etiquetas: clic, haciendo, html, mapa, mysql, rutas, sql, tabla, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:51.