6 de abril de 2010

Librería YQL Geo

Cada día son más las aplicaciones que hacen uso de la geolocalización, dos de los ejemplos más claros son los de Twitter y Flickr, Twitter geolocaliza los mensajes y Flickr geolocaliza las fotos.

Existen diferentes alternativas para trabajar la geolocalización mediante JavaScript, probablemente la opción más usada por los desarrolladores es la de usar la API de Google Maps, en la versión 2 con GClientGeocoder, y la versión 3 con google.maps.Geocoder.

Una de las alternativas al uso de la API de Google Maps es YQL Geo, una librería pensada para geolocalizar información, hacer geolozación inversa y análisis de contenido.

YQL Geo hace uso de los siguientes servicios para devolver sus resultados.

- Yahoo Placemaker
- Yahoo GeoPlanet
- jsonip.appspot.com
- IP location tools
- W3C Geo location
- Flickr.places.findByLatLon

Su uso es extremandamente simple, tan solo hay que añadir la librería en la cabecera de la página y hacer uso del metodo get.


yqlgeo.get(what, callback)


what
Es cualquier cosa que se desee analizar, puede ser desde una URL a un documento web, un texto, una IP, una coordenada dada con longitud y latitud, o "visitor" para detectar la localización geografica del usuario que visita la página.

callback
es el método de devolución que será llamado cuando se de una recuperación exitosa de la información. Los datos se devuelven en forma objeto - si hay algún error al recuperar la información se devolverá envuelto en una propiedad de error.

Ejemplos



Obtener la localización geográfica de un texto



yqlgeo.get('paris,fr',function(o){
alert(o.place.name+' ('+
o.place.centroid.latitude+','+
o.place.centroid.longitude+
')');
});


Obtener la información sobre la ubicación de lat/lon



yqlgeo.get(33.748,-84.393,function(o){
alert(o.place.name + ',' + o.place.country.content);
});

yqlgeo.get([33.748,-84.393],function(o){
alert(o.place.name + ',' + o.place.country.content);
});


Obtener todas las ubicaciones geográficas de una determinada URL



yqlgeo.get('http://icant.co.uk',function(o){
var out = '';
var all = o.place.length;
for(var i=0;i out+=o.place[i].name+'\n';
};
alert(out);
});


Obtener el lugar de un número de IP



yqlgeo.get('217.12.14.240',function(o){
alert(o.place.name + ',' + o.place.country.content +
' (' + o.place.centroid.latitude + ',' +
o.place.centroid.longitude + ')'
);
});


Localización de usuario (utilizando la API de geolocalización del W3C y la IP)



yqlgeo.get('visitor',function(o){
alert(o.place.name + ',' + o.place.country.content +
' (' + o.place.centroid.latitude + ',' +
o.place.centroid.longitude + ')'
);
});

1 comentario:

  1. Hola.

    No hay manera de que me funcione esta librería.

    Mi idea es usarla para cuando me falla la geolocalización en los navegadores que no lo soportan.

    Hay alguna cuestión particular que deba saber. Incluso he puesto alerts en el .js de la librería pero no ha manera.

    Me puedes echar un cable.

    Gracias

    ResponderEliminar