Foros del Web » Programando para Internet » Javascript »

Problemas con API de Google Maps

Estas en el tema de Problemas con API de Google Maps en el foro de Javascript en Foros del Web. Buenas tardes. Soy nuevo en el foro, así que una salutación para toda la comunidad, espero poder aprender mucho de vosotros y que yo pueda ...
  #1 (permalink)  
Antiguo 24/05/2015, 10:54
 
Fecha de Ingreso: mayo-2015
Mensajes: 2
Antigüedad: 8 años, 11 meses
Puntos: 0
Problemas con API de Google Maps

Buenas tardes.
Soy nuevo en el foro, así que una salutación para toda la comunidad, espero poder aprender mucho de vosotros y que yo pueda ayudar a alguien con mi saber.
El problema es el siguiente:
Estoy programando una web que registra establecimientos. Cada uno de ellos cuenta con una dirección.
Estos registros se muestran en una tabla des de la que se puede ver información varia de cada uno de los registros tal como: Nombre, actividad, dirección, localidad, código postal...
La dirección se muestra en forma de link que al hacerle clic envía por GET: número de edificio, calle, población y provincia que posteriormente passo como parámetro a una función que me devuelve las coordenadas de dicha dirección y estás se las paso por parámetro a otra función que me genera el mapa y sitúa un marcador en dicho punto correspondiente a las coordenadas.
Todo este proceso funciona a la perfección ejecutado localmente (uso XAMPP). Pero una vez subido a servidor los parámetros se pasan correctamente pero el mapa se genera con un sinfín de imágenes con el mensaje "Lo sentimos, no disponemos de imágenes para esta vista.
Soy nuevo en el uso de este API y no se en que puede residir el problema y por que en servidor deja de funcionar.
Espero haberme explicado correctamente y que alguien pueda aportar un poco de luz a este problema. Muchas gracias.
  #2 (permalink)  
Antiguo 24/05/2015, 16:04
txemaarbulo
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problemas con API de Google Maps

Hola mugen90:

Sin ver algo de código es difícil ayudarte. Hay varias cosas que no me quedan claras:

"Estos registros se muestran en una tabla des de la que se puede ver información varia de cada uno de los registros tal como: Nombre, actividad, dirección, localidad, código postal...". ¿En una base de datos, excel, ... ?

"La dirección se muestra en forma de link que al hacerle clic envía por GET". ¿Es a través de GET como lo llevas al mapa?

"Todo este proceso funciona a la perfección ejecutado localmente (uso XAMPP). Pero una vez subido a servidor los parámetros se pasan correctamente pero el mapa se genera con un sinfín de imágenes con el mensaje "Lo sentimos, no disponemos de imágenes para esta vista. " Aquí es donde necesitaría ver código, porque no sé cómo generas el mapa y en qué punto te envía el mensaje.

Nos comentas.

Saludos.
  #3 (permalink)  
Antiguo 25/05/2015, 02:49
 
Fecha de Ingreso: mayo-2015
Mensajes: 2
Antigüedad: 8 años, 11 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
  #4 (permalink)  
Antiguo 26/05/2015, 10:14
txemaarbulo
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problemas con API de Google Maps

Veo bastante confuso el código tuyo. lo lanzas sin el Highilight y segundo porque mezclas dos formas de acceso a Google Maps.

Te comentaba de un inicio que la opción GET es válida pero no es la mñás interesante.

Si tomas los datos desde una dase de datos, parte de Lat, Lng Puedes tener, y los tienes, errores en la configuración de la dirección. Google maps auto-corrige, pero no de cualquier modo.

Dame los parámetros de repuesta de alert en alert(lat+" "+lon) o tla vez más importante de "http://maps.google.com/maps/api/geocode/json?sensor=false&address=" . $address;

$address; lo veo mal configurado.

Puedes conectar conmigo en privado.
Saludos

Etiquetas: api, google, maps, php, registro, tabla
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 10:47.