Foros del Web » Programando para Internet » Javascript »

problema saltos de linea en bocadillo de google maps

Estas en el tema de problema saltos de linea en bocadillo de google maps en el foro de Javascript en Foros del Web. Hola a todos, tengo un problema que ya me esta volviendo un poco loco y necesito ayuda del cacao que tengo ya en la cabeza. ...
  #1 (permalink)  
Antiguo 28/09/2010, 07:33
 
Fecha de Ingreso: diciembre-2005
Mensajes: 57
Antigüedad: 18 años, 4 meses
Puntos: 1
problema saltos de linea en bocadillo de google maps

Hola a todos, tengo un problema que ya me esta volviendo un poco loco y necesito ayuda del cacao que tengo ya en la cabeza. Mi problema es el siguiente:

Resulta que utilizo el api de google maps v2. Los datos los tengo en una base de datos. Para visualizar los datos en el bocadillo se pasan los datos a xml creando nodos y luego al mostrar el los datos en el bocadillo no me respeta los saltos de linea. Entonces cuando paso los datos a xml lo hago con php y el mapa se muestra en javascript.

En el archivo que genera xml le puse que al añadir el dato le pusiera espacio <br/> de la siguiente forma:

$valor=$row('descripcion');
$ba = stripslashes($valor);
$ba2= str_replace("\n","<br/>",$ba);
$dar_espacops= str_replace(" ","&nbsp; ",$ba2);
$bas=$dar_espacops;

Añado el dato al archivo xml:

echo 'horario="' . utf8_encode (parseToXML($bas)) . '" ';

Y en archivo que muestra el mapa, en el javascript:

leo los datos:

GDownloadUrl("phpsqlajax_genxml.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("name");
var address = markers[i].getAttribute("address");
var type = markers[i].getAttribute("type");
var categoria = markers[i].getAttribute("categoria");
var descripcion = markers[i].getAttribute("descripcion");
var horario = markers[i].getAttribute("horario");
if (horario.length>0) {var horario= "Horario:<br /> "+horario;}
var precio = markers[i].getAttribute("precio");
if (precio.length>0) {var precio= "Precio: "+precio;}
var contacto = markers[i].getAttribute("contacto");
var foto = markers[i].getAttribute("foto");
var clocal = markers[i].getAttribute("clocal");
var point = new GLatLng(parseFloat(markers[i].getAttribute("lng")),
parseFloat(markers[i].getAttribute("lat")));
var marker = createMarker(point, name, address, type, categoria, descripcion, horario, precio, contacto, foto,clocal);
map.addOverlay(marker);
}

los muestro:

function createMarker(point, name, address, type, categoria, descripcion, horario, precio, contacto, foto, clocal) {
var marker = new GMarker(point, customIcons[categoria]);
var html = "<b>" + name + "</b> <br/><span style='color: #808080; font-size: 9px;'>" + address+ "</span><br/><br/> <img src='images/iweb/minis/" + foto + "'> <br/><br/>Categoria: " +categoria+ "<br/> <br/>" +horario+ " <br/><br/>" +precio+ "<br/><br/>" +contacto+ "</b> <br/>" +foto+ "</b> <br/>"+clocal;
GEvent.addListener(marker, 'click', function() {
marker.openInfoWindowHtml(html);
});
return marker;

Ahora en el bocadillo me sale el datos pero en lugar de hacerme los saltos de lina me aparece como texto el <br/> y no hace el salto.


¿¿¿Deberia hacer colocar los altos de lineas en el javascript???¿¿ Al leer o al mostrar los datos en javascript???¿¿En la creacion del xml??? Ayuda please...
  #2 (permalink)  
Antiguo 28/09/2010, 09:06
 
Fecha de Ingreso: julio-2008
Mensajes: 208
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: problema saltos de linea en bocadillo de google maps

Y todo indica que el parseToXML te esta poniendo los <br/> como texto comun (¿tal vez te hace un scape?).

Cual es el codigo del parseToXML ?...
Ah...y a que le llamas bocadillo???me causo bastante gracia..y no se que significa.
Saludos.
  #3 (permalink)  
Antiguo 28/09/2010, 09:35
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Tema movido desde PHP a Javascript
  #4 (permalink)  
Antiguo 28/09/2010, 12:58
 
Fecha de Ingreso: diciembre-2005
Mensajes: 57
Antigüedad: 18 años, 4 meses
Puntos: 1
Respuesta: problema saltos de linea en bocadillo de google maps

Perdón por ponerlo en PHP esque no se si lo que tengo que poner los saltos de linea es en PHP o en javascript.

Voy a probar a quitar los parseToXML a ver si me lo hace bien.

Los bocadillos me refiero a cuando pinchas en un punto de un mapa google y se abre la ventanita con los datos del puntos.... como en las conversaciones de los comics ;).

Pruebo a quitar eso y os comento...
  #5 (permalink)  
Antiguo 28/09/2010, 13:24
 
Fecha de Ingreso: diciembre-2005
Mensajes: 57
Antigüedad: 18 años, 4 meses
Puntos: 1
Respuesta: problema saltos de linea en bocadillo de google maps

Ahora he quitado el parsetoXML, no sale los <br/> pero sigue sin hacer los saltos de lineas. Los datos proceden de un textbox de un formulario que grabo en una base de datos en php.¿ Tendria que crear los saltos de linea dentro de la funcion createmaker o en la parte que recoge los datos del archivo xml??? Como se haría en javascript?? gracias por leerme
  #6 (permalink)  
Antiguo 29/09/2010, 14:38
 
Fecha de Ingreso: diciembre-2005
Mensajes: 57
Antigüedad: 18 años, 4 meses
Puntos: 1
Respuesta: problema saltos de linea en bocadillo de google maps

Bueno de momento he llegado a lo siguiente: en la ventana del mapa google me sale asi el dato:

Verano: <br/>9.00 - 14.00 ; 16.00 - 20.00 <br/> <br/>Invierno: <br/>9.00 - 14.00 ; 16.00 - 18.00 <br/> <br/>Miércoles

asi muestro el dato:


marker.openInfoWindowHtml(horario);

como hago para reemplazarlo por saltos de linea en javascript?
  #7 (permalink)  
Antiguo 29/09/2010, 15:43
 
Fecha de Ingreso: diciembre-2005
Mensajes: 57
Antigüedad: 18 años, 4 meses
Puntos: 1
Respuesta: problema saltos de linea en bocadillo de google maps

He pueso un alert con la variable horario me sale lo siguiente:

Horario:<br /> Verano: &lt;br/&gt;9.00&nbsp; -&nbsp; 14.00&nbsp; ;&nbsp; 16.00&nbsp; -&nbsp; 20.00 &lt;br/&gt; &lt;br/&gt;Invierno: &lt;br/&gt;9.00&nbsp; -&nbsp; 14.00&nbsp; ;&nbsp; 16.00&nbsp; -&nbsp; 18.00 &lt;br/&gt; &lt;br/&gt;Miércoles&nbsp; cerrado.

Y en el mapa en la ventana me sale de este modo::

Verano: <br/>9.00 - 14.00 ; 16.00 - 20.00 <br/> <br/>Invierno: <br/>9.00 - 14.00 ; 16.00 - 18.00 <br/> <br/>Miércoles cerrado.

Me estoy volviendo locooo ayuda pleaseeeee....
  #8 (permalink)  
Antiguo 30/09/2010, 02:15
 
Fecha de Ingreso: septiembre-2010
Ubicación: Malaga
Mensajes: 47
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: problema saltos de linea en bocadillo de google maps

Yo tuve problemas parecidos, y tambien comentar que en IE responde diferente a FF.

La forma en que lo hago:

Código Javascript:
Ver original
  1. function googlemap(lat, lon, name, dire, prov) {
  2.  
  3.     var map = new GMap(document.getElementById("mapa"));
  4.     map.setMapType(G_NORMAL_MAP);  
  5.     map.addControl(new GLargeMapControl());
  6.     map.addControl(new GMapTypeControl());
  7.    
  8.     var point = new GPoint (lon, lat);
  9.     var marker = new GMarker(point);
  10.  
  11.     var htmlw = "<b>"+name+"</b><br><hr class='google'>"+dire+"<br>"+prov+"<br>";
  12.         htmlw += "<table><tr><td>Lat:</td><td>"+lat+"</td></tr><tr><td>Lon:</td><td>"+lon+"</td></tr></table><hr class='google'>";         
  13.  
  14.  
  15.     GEvent.addListener(marker, 'click', function() {
  16.         marker.openInfoWindowHtml(htmlw);
  17.        });    
  18.     map.addOverlay(marker);
  19.     map.centerAndZoom(point, 1);
  20.     marker.openInfoWindowHtml(htmlw);
  21.  
  22.  
  23. }

Espero que te sirva...
  #9 (permalink)  
Antiguo 30/09/2010, 07:31
 
Fecha de Ingreso: diciembre-2005
Mensajes: 57
Antigüedad: 18 años, 4 meses
Puntos: 1
Respuesta: problema saltos de linea en bocadillo de google maps

Hola he probado pero me sigue saliendo igual solo que me sale todo despues del separador. Lo que es los datos colocados si me salen los saltos de linea lo que no me sale es la variable que tenga saltos de linea lo demas me lo coloca bien, pero si la variable horario tiene por ejemplo tres renglones me los coloca seguidos.

En tu ejemplo la clase google tiene algo que ver?? Almacenas los datos en mysql y luego lo pasas a un archivo xml??? Esque el fallo no se si es al leer el archivo xml o al pasarlos a xml. gracias por la idea seguir probando de todos modos alguna forma similar a la tuya a ver si lo consigo

Última edición por davidsbok; 30/09/2010 a las 07:37 Razón: pensando...
  #10 (permalink)  
Antiguo 30/09/2010, 08:55
 
Fecha de Ingreso: septiembre-2010
Ubicación: Malaga
Mensajes: 47
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: problema saltos de linea en bocadillo de google maps

Hola

La clase google no tiene nada que ver, solo la uso para evitar que el hr salga centrado.

Lo que quieres, que la propia variable incorpore los saltos de linea, no lo he intentado.

Una posible solucion, es tratar horario dentro createMarker, y ahi meterle los saltos de linea.
  #11 (permalink)  
Antiguo 30/09/2010, 13:30
 
Fecha de Ingreso: diciembre-2005
Mensajes: 57
Antigüedad: 18 años, 4 meses
Puntos: 1
Respuesta: problema saltos de linea en bocadillo de google maps

Yo que se ya estoy que tiro la toalla.¿Puede que tenga que ver algo que para que me haga el salto de linea en un alert tenga que poner \\\n en luegar de \\n?

Etiquetas: api, bocadillo, google, linea, maps, saltos
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 17:28.