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;iout+=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 + ')'
);
});
Hola.
ResponderEliminarNo 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