Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Duda al realizar un mapa con google maps api v3

Estas en el tema de Duda al realizar un mapa con google maps api v3 en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Buenas noches, estoy intentando realizar un mapa en el que aparezcan una serie de marcadores a partir de los datos que tengo en una base ...
  #1 (permalink)  
Antiguo 14/06/2012, 14:37
 
Fecha de Ingreso: octubre-2007
Ubicación: Salamanca
Mensajes: 38
Antigüedad: 17 años, 1 mes
Puntos: 0
Sonrisa Duda al realizar un mapa con google maps api v3

Buenas noches,

estoy intentando realizar un mapa en el que aparezcan una serie de marcadores a partir de los datos que tengo en una base de datos. (Trabajando sobre Zend Framework)

A través de diferentes manuales, he llegado a este código:

Código PHP:
$dom = new DOMDocument("1.0");
$node $dom->createElement("markers");
//Insertar el elemento raíz en el documento
$parnode $dom->appendChild($node);
            
$markers = new Application_Model_DbTable_Markers();
                        
$select $markers->select();
$select->from($markers)
->
where("idMarker>=?",'1');
            
$ubicaciones $markers->fetchAll($select);
        
$numero_ubicaciones =  count($ubicaciones);
            
if(
$numero_ubicaciones 0){
        echo 
"Hemos encontrado"$numero_ubicaciones ."ubicaciones";
                
        
//header("Content-type: text/xml");
            //Si lo descomento me da error

                
            
foreach($ubicaciones as $ubicacion){
                    
//Añadimos al nodo documento de xml
                    
$node $dom->createElement("marker");
                     
                    
$newnode $parnode->appendChild($node);
                     
                    
$newnode->setAttribute("lugar"utf8_encode($ubicacion->lugar));
                    
$newnode->setAttribute("lat"utf8_encode($ubicacion->lat));
                    
$newnode->setAttribute("lng"utf8_encode($ubicacion->lng));
        }
                    
        
//Mostramos el documento DOM
                
        
$dom->formatOutput true;
        
$xmlfile $dom->saveXML();
        echo 
$xmlfile;
    }else{    
        
$mensaje "No hemos encontrado nada con esas características";
        
$this->_redirect('mapas/index?mensaje='.$mensaje);
    } 
Qué estoy haciendo mal para que el "echo $xmlfile" no produzca ningún resultado?

(Este es el código del controlador)
  #2 (permalink)  
Antiguo 14/06/2012, 15:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Duda al realizar un mapa con google maps api v3

Usa var_dump($xmlfile); para ver el contenido de tu variable
  #3 (permalink)  
Antiguo 14/06/2012, 18:24
 
Fecha de Ingreso: octubre-2007
Ubicación: Salamanca
Mensajes: 38
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Duda al realizar un mapa con google maps api v3

Cita:
Iniciado por GatorV Ver Mensaje
Usa var_dump($xmlfile); para ver el contenido de tu variable
Pues me devuelve:
Cita:
string(392) " "
  #4 (permalink)  
Antiguo 15/06/2012, 09:01
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Duda al realizar un mapa con google maps api v3

Pues te dice que hay un string (392) lo que yo creo es que el browser lo esta interpretando, haz esto:
Código PHP:
Ver original
  1. echo htmlspecialchars($xmlfile);

Saludos.
  #5 (permalink)  
Antiguo 15/06/2012, 10:47
 
Fecha de Ingreso: octubre-2007
Ubicación: Salamanca
Mensajes: 38
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Duda al realizar un mapa con google maps api v3

Gracias, con esta opción si que aparecen los datos del archivo xml.

¿Por qué da error al incluir la cadena del header? :

header("Content-type: text/xml");
  #6 (permalink)  
Antiguo 15/06/2012, 10:56
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: Duda al realizar un mapa con google maps api v3

Te dejo una referencia http://stackoverflow.com/questions/1...rk-application, sigue el ejemplo del tercer post, deberías utilizar los contextos y setear los headers y body al response.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #7 (permalink)  
Antiguo 15/06/2012, 11:23
 
Fecha de Ingreso: octubre-2007
Ubicación: Salamanca
Mensajes: 38
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Duda al realizar un mapa con google maps api v3

Otra pregunta...¿en qué parte de ese código, colocaría la función "utf8_encode", para que los datos con tildes aparecieran de forma correcta? Gracias de nuevo
  #8 (permalink)  
Antiguo 15/06/2012, 11:49
 
Fecha de Ingreso: octubre-2007
Ubicación: Salamanca
Mensajes: 38
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Duda al realizar un mapa con google maps api v3

Cita:
Iniciado por masterpuppet Ver Mensaje
Te dejo una referencia [url]http://stackoverflow.com/questions/1542979/how-to-return-xml-in-an-zend-framework-application[/url], sigue el ejemplo del tercer post, deberías utilizar los contextos y setear los headers y body al response.

Saludos.
Hola! Gracias por responder.

He seguido el ejemplo, y el resultado que me da es el siguiente:

"This page contains the following errors:

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

El código que he utilizado es el que pego aquí abajo:

Código PHP:

    $dom 
= new DOMDocument('1.0''utf-8');

    
$node $dom->createElement("markers");

    
$parnode $dom->appendChild($node);
            
    
$markers = new Application_Model_DbTable_Markers();
                        
    
$select $markers->select();
    
$select->from($markers)
        ->
where("idMarker>=?",'1');
            
    
$ubicaciones $markers->fetchAll($select);
            
    
$numero_ubicaciones =  count($ubicaciones);
            
    if(
$numero_ubicaciones 0){
            echo 
"Hemos encontrado"$numero_ubicaciones ."ubicaciones";
                
                    foreach(
$ubicaciones as $ubicacion){
                            
$node $dom->createElement("marker");
                     
                    
$newnode $parnode->appendChild($node);
                     
                    
$newnode->setAttribute("lugar"$ubicacion->lugar);
                    
$newnode->setAttribute("lat"$ubicacion->lat);
                    
$newnode->setAttribute("lng"$ubicacion->lng);
                }
                    
                
                
                
                
$xmlfile $dom->saveXML();
                
            
//Ambos layout y view renderer deben ser desactivados
                               
Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer')->setNoRender(true);
                
Zend_Layout::getMvcInstance()->disableLayout();
                
        
//Set up headers and body
         
$this->_response->setHeader('Content-Type''text/xml; charset=utf-8')
                    ->
setBody($xmlfile);
    }else{    
            
$mensaje "No hemos encontrado nada con esas características";
                
$this->_redirect('mapas/index?mensaje='.$mensaje);
    } 
  #9 (permalink)  
Antiguo 15/06/2012, 13:45
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Duda al realizar un mapa con google maps api v3

Con que hagas algo así:
Código PHP:
Ver original
  1. $this->_helper->viewRenderer->setNoRender(true);
  2. $this->_helper->layout->disableLayout();
  3.  
  4. $this->_response->setHeader('Content-Type', 'text/xml; charset=utf-8')->setBody($xmlfile);

Saludos.

Etiquetas: domdocument
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:41.