Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rocooliveira

[Resolvido] API Google Maps V3 - Só é exibido na maquina local

Recommended Posts

Fala galera.

Queria saber se por acaso alguém já teve um problema desse tipo e saiba como me dar uma ajuda.

 

Estou usando a API V3 do google maps. Localmente testando com o banco de dados mysql e servidor apache tudo funciona normalmente, os marcadores personalizados são exibidos normalmente. o javascript faz uma requisição ao arquivo php que gera xml com os dados para exibição do marcador personalizado e sua posição no map. Mas quando coloco os mesmos arquivos no servidor da HS (Hospedagem segura) os marcadores não são exibidos.

 

Agradeço desde já quem puder dar uma ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

aparece algum erro no console ?

 

Ctrl+Shift+J no firefox.

tem algum erro no php ?

 

não é problema com o ambiente, mas alguma falha no código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aí que a não entendo mesmo a coisa. Só acontece no servidor da HS no meu servidor local não é exibido nada no console de erros

 

Verifiquei pelo firefox e deu o seguinte:

 

Erro: xml is null

Arquivo-fonte: /js/markers.js

Linha: 87

---------

No Chrome o console exibe este aviso:

Uncaught TyperError: Cannot Read 'domumentElement' of Null

 

Deve ser pelo fato que ele verifica o erro naquele elemento. Mas é a mesma coisa que esta dizendo. Que foi passado como Null. Mas no servidor local não tive esse problema.

 

O trecho do meu código referente é esse:

 

downloadUrl("xml.php?param="+get_query , function(data) {
       var xml = data.responseXML;
       var markers = xml.documentElement.getElementsByTagName("marker");
       for (var i = 0; i < markers.length; i++) {
	  var idImovel = markers[i].getAttribute("id");
         var tipoImovel = markers[i].getAttribute("tipoImovel");
         var endereco = markers[i].getAttribute("endereco");
	  var quartos = markers[i].getAttribute("quartos");
	  var area = markers[i].getAttribute("area");
	  var vagas = markers[i].getAttribute("vagas");
	  var valor = formatMoeda(markers[i].getAttribute("valor"));

         var tipoTransacao = markers[i].getAttribute("tipoTransacao");

         var point = new google.maps.LatLng(
             parseFloat(markers[i].getAttribute("lat")),
             parseFloat(markers[i].getAttribute("lng")));
         var html = '<div style=" width:250px";><img style="float:left" src="imgs_imoveis/'+idImovel+'_m.jpg" width="140" height="100" />'+' <b>Apartamento</b> <br/> '+quartos+'  quartos<br/> '+area+'m<sup>2</sup> <br/> '+vagas+'  vagas<br/> R$'+valor+'</div>';

         var icon = customIcons[tipoTransacao] || {};
         var marker = new google.maps.Marker({
           map: map,
           position: point,
           icon: icon.icon,
         });
         bindInfoWindow(marker, map, infoWindow, html, idImovel);
       }
     });
   }

   function downloadUrl(url, callback, quartos) {
     var request = window.ActiveXObject ?
         new ActiveXObject('Microsoft.XMLHTTP') :
         new XMLHttpRequest;

     request.onreadystatechange = function() {
       if (request.readyState == 4) {
         request.onreadystatechange = doNothing;
         callback(request, request.status);
       }
     };

     request.open('GET', url, true);
     request.send(null);
   }

   function doNothing() {}

Compartilhar este post


Link para o post
Compartilhar em outros sites

pelo visto o erro é no php =)

 

adicione um alert:

var xml = data.responseXML;
alert( xml );

vai voltar um erro ou o undefined.

 

debugue o teu php até encontrar a raiz.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou dar uma olhada. E como possívelmente é no PHP e na minha maquina funciona e lá no servidor da HS não funciona, pode ser alguma coisa de configuração do PHP no servidor. Vou ver se resolvo e posto aqui.

VLW

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz uns testes aqui e ele na verdade esta gerando o xml mesmo no servidor da HS. O que acontece testando direto arquivo php que gera o xml é que gera um erro:

Warning: Cannot modify header information - headers already sent by (output started at /public_html/xml.php:1) in /public_html/xml.php on line 24

 

Isso porque eu estou usando: header("Content-type: text/xml");

Mas se eu retirar essa linha do codigo ele não vai fazer o xml corretamente e não vai mostrar os markers da mesma forma. Então se eu retiro e para de dar esse erro e o xml é gerado ele continua não exibindo meus marcadores.

Já não sei mais o que fazer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

poste o teu script php inteiro aqui.

 

o erro diz q tem alguma saida antes do header, e isso q não pode entendeu ?

você tem q mover a linha do header para antes de qq output.

 

como tá indicando a linha 1, dá uma olhada se não é um problema com BOM. Salve o teu arquivo em utf8 sem bom.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvido!

Muito obrigado Willian

Era exatamente o que falou. Salvei no DreamWeaver sem incluir o BOM e agora esta funcionando. Era só esse problema da codificação do arquivo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.