Geoposicionamiento con Yahoo en PHP
No solo de Google vive el programador, y en ese caso se trata de Yahoo y la posibilidad de jugar con el geoposicionamiento gracias a su API.
Los ejemplos que muestra el enlace al que referencio son bastante sencillos y se basan en una llamada HTTP, que puede devolver distintos formatos.
La base de la aplicación sería este script:
<?php
function request_cache($url, $dest_file, $timeout=43200) {
if(!file_exists($dest_file) || filemtime($dest_file) < (time()-$timeout)) {
$stream = fopen($url,'r');
$tmpf = tempnam('/tmp','YWS');
file_put_contents($tmpf, $stream);
fclose($stream);
rename($tmpf, $dest_file);
}
}
function yahoo_geo($location) {
$q = 'http://api.local.yahoo.com/MapsService/V1/geocode';
$q .= '?appid=rlerdorf&location='.rawurlencode($location);
$tmp = '/tmp/yws_geo_'.md5($q);
request_cache($q, $tmp, 43200);
libxml_use_internal_errors(true);
$xml = simplexml_load_file($tmp);
$ret['precision'] = (string)$xml->Result['precision'];
foreach($xml->Result->children() as $key=>$val) {
if(strlen($val)) $ret[(string)$key] = (string)$val;
}
return $ret;
}
?>
El resto de los ejemplos son muy sencillos de seguir.
PHPUnit es un framework para PHP que nos facilita la creación de juegos de tests y la ejecución de estos y analiza sus resultados. Aunque inicialmente PHP empezó como complemento dinámico para pequeñas páginas web, actualmente PHP se utiliza para desarrollar aplicaciones web complejas, por lo que es importante poder realizar las pruebas pertinentes a nuestro código.