Foros del Web » Programando para Internet » PHP »

problema xml google maps api

Estas en el tema de problema xml google maps api en el foro de PHP en Foros del Web. Buenos días. Tengo el script de abajo para recoger coordenadas en google maps, todo va bien, pero cuando la dirección tiene acentos o ñ, me ...
  #1 (permalink)  
Antiguo 18/12/2008, 06:16
 
Fecha de Ingreso: enero-2008
Mensajes: 303
Antigüedad: 16 años, 9 meses
Puntos: 0
problema xml google maps api

Buenos días.
Tengo el script de abajo para recoger coordenadas en google maps, todo va bien, pero cuando la dirección tiene acentos o ñ, me da error.

Para arregarlo codifico a uft-8. Lo he probado con un eco y la dirección sale correcta, con sus acentos y sus eñes.
Pero lo extraño que la funcion urlencode me da el siguiente error:

Input is not proper UTF-8, indicate encoding


Ayuda por favor.

Graciass y un saludo


Código PHP:
<?php

require_once('Connections/'); 

define("MAPS_HOST""maps.google.com");
define("ABQIAAAAV22DtOnxh0_Z7RZc9fr_aRQ_IQDpnXTNUhI1-_yUX8z_JhQ2fRT5IFf-81wYM31nkDwQAGjJyAHuHg""abcdefg");

// Opens a connection to a MySQL server

if (!$remota) {
  die(
"Not connected : " mysql_error());
}

// Set the active MySQL database
$db_selected mysql_select_db($database_remota$remota);
if (!
$db_selected) {
  die(
"Can\'t use db : " mysql_error());
}

// Select all the rows in the restaurantes table

 
// Initialize delay in geocode speed
$delay 0;
$base_url "http://" MAPS_HOST "/maps/geo?output=xml" "&key=" KEY;

// Iterate through the rows, geocoding each direccion
  
$geocode_pending true;

 
    
$direccion utf8_decode ($row_Recordset1['direccion'].",".$row_Recordset1['localidad'].",".$row_Recordset1['restaurante'] .","."ES");
    echo 
$direccion;
    
$id $row["id"];
    
$request_url $base_url "&q=" urlencode($direccion);
    
$xml simplexml_load_file($request_url) or die("url not loading");
var_dump($xml);

    
$status $xml->Response->Status->code;
    if (
strcmp($status"200") == 0) {
      
// Successful geocode
      
$geocode_pending false;
      
$coordinates $xml->Response->Placemark->Point->coordinates;
      
$coordinatesSplit split(","$coordinates);
      
// Format: Longitude, Latitude, Altitude
      
$lat $coordinatesSplit[1];
      
$lng $coordinatesSplit[0];

      
$query "UPDATE  " .
             
" SET lat = '$lat', lng = '$lng' " .
             
" WHERE = '$_POST[nombrerest]'";
      
$update_result mysql_query($query);
      if (!
$update_result) {
        die(
"Invalid query: " mysql_error());
      }
    } else if (
strcmp($status"620") == 0) {
      
// sent geocodes too fast
      
$delay += 100000;
    } else {
      
// failure to geocode
      
$geocode_pending false;
      echo 
"direccion " $direccion " failed to geocoded. </br>";
      echo 
"Received status " $status "\n";
    }
    
usleep($delay);
 
?>

Última edición por eurodoblon; 19/12/2008 a las 14:56
  #2 (permalink)  
Antiguo 18/12/2008, 06:24
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: problema xml google maps api

intenta no usar utf8_encode y mejor usa urlencode directamente...

bueno, si no entendí.... puedes poner el error completo??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 18/12/2008, 08:55
 
Fecha de Ingreso: enero-2008
Mensajes: 303
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: problema xml google maps api

Si tambien probé sin encode utf-8 y me dá el mismo error.
Es es el error completo: (el caso es que si mando ala barra de direcciones la url que dice erronea me devuelve el xml correcto?)

Warning: simplexml_load_file() [function.simplexml-load-file]: http://maps.google.com/maps/geo?outp...A8ncia%2CES:3: parser error : Input is not proper UTF-8, indicate encoding ! Bytes: 0xE9 0x20 0x53 0x69 in E:\Documents and Settings\Usuario\Mis documentos\eventofacil\coordenadas1.php on line 75

Warning: simplexml_load_file() [function.simplexml-load-file]: <name>Ingeniero José Sirera, 53,Valencia,Valencia/València,ES</name> in E:\Documents and Settings\Usuario\Mis documentos\eventofacil\coordenadas1.php on line 75

Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in E:\Documents and Settings\Usuario\Mis documentos\eventofacil\coordenadas1.php on line 75
  #4 (permalink)  
Antiguo 19/12/2008, 13:05
 
Fecha de Ingreso: enero-2008
Mensajes: 303
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: problema xml google maps api

ENCONTRE LA SOLUCION.

Susituir

Código PHP:
$base_url "http://" MAPS_HOST "/maps/geo?output=xml" "&key=" KEY
por:
Código PHP:
$base_url "http://" MAPS_HOST "/maps/geo?output=xml" "&key=" KEY ."&oe=utf-8"
Lo dejo por si le sirve a alguien.

Última edición por jam1138; 19/12/2008 a las 17:39
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 21:59.