 
			
				25/05/2015, 02:49
			
			
			     |  
      |    |    |    Fecha de Ingreso: mayo-2015  
						Mensajes: 2
					  Antigüedad: 10 años, 5 meses Puntos: 0     |        |  
  |      Respuesta: Problemas con API de Google Maps        Buenos días txemaarbulo. 
Si, los datos están guardados en bbdd mysql. 
El link es un <a href=#> que lleva a la hoja en donde se carga el mapa a partir de las coordenadas. Esas coordenadas son descifradas por una función a la que le paso esos parámetros GET.   
La hoja en donde cargo el mapa es la siguiente:  
<?php 
$adreca=$_GET["n"].", ".$_GET["c"].", ".$_GET["p"].", Tarragona"; 
$nombre_comercial=$_GET["nc"]; 
$coords = $calculs->getCoordinates($adreca); 
print_r($adreca); 
echo $nombre_comercial; 
echo "coord1:".$coords[0]." coord2:".$coords[1]."<br>"; 
?> 
<div id="map_canvas" style="width: 100%; height: 80%;"></div> 
<script language="javascript"> 
mapa('<?=$coords[0] ?>','<?=$coords[1] ?>','<?=$nombre_comercial ?>') 
</script>   
La función getCoordinates() es la siguiente:  
public function getCoordinates($address){ 
        $address = urlencode($address); 
        $url = "http://maps.google.com/maps/api/geocode/json?sensor=false&address=" . $address; 
        $response = file_get_contents($url); 
        $json = json_decode($response,true);   
        $lat = $json['results'][0]['geometry']['location']['lat']; 
        $lng = $json['results'][0]['geometry']['location']['lng'];   
        return array($lat, $lng); 
    }   
Y la función mapa: 
function mapa(lat,lon,nombre_comercial) { 
          alert(lat+" "+lon) 
          var myLatlng = new google.maps.LatLng(lat, lon); 
          var myOptions = { 
            zoom: 28, 
            center: myLatlng, 
            mapTypeId: google.maps.MapTypeId.SATELLITE 
          };   
          var map = new google.maps.Map($("#map_canvas").get(0), myOptions);   
          var marker = new google.maps.Marker({ 
            position: myLatlng, 
            map: map, 
            title:nombre_comercial 
        });   
        } 
**He podido  ver de donde viene el problema. En local no existe dicho problema, pero por algún motivo la función getCoordinates() en servidor no devuelve nada y lógicamente no puede generar el mapa. Si puedes analizarla y ves algo que yo no haya podido ver agradecería que me lo comentarás! Muchas gracias!   
EDITO:   
public function getCoordinates($numero,$calle,$poblacion,$provinci  a){ 
        $address=$numero.",".$calle.",".$poblacion.",".$pr  ovincia.""; 
        //$address = urlencode($address); 
        $url = "http://maps.google.com/maps/api/geocode/json?sensor=false&address=" . $address; 
        print_r($url); 
        $response = file_get_contents($url); 
        $json = json_decode($response,true); 
        $lat = $json['results'][0]['geometry']['location']['lat']; 
        $lng = $json['results'][0]['geometry']['location']['lng']; 
        return array($lat, $lng); 
    }   
Modifique esta función que es de donde procede el problema. La dirección se pasa correctamente por la url y genera la correspondiente estructura json. $lat y $lng se resuelven correctamente pero las variables no cogen el valor que les correspondería y se quedan vacías. $json['results'][0]['geometry']['location']['lat'] comprobé que realmente apuntaba a la información deseada y así es.         
					
						Última edición por mugen90; 25/05/2015 a las 03:12           |