En el YUI 3 Galería: Geo
06 de mayo 2011 a las 4:46 pm por Nicholas C. Zakas | En Desarrollo , YUI 3 Galería | Sin ComentariosGeolocalización es una de las emocionantes HTML5 relacionados con las tecnologías más a aparecer en los navegadores, y el Geo módulo de galería que da acceso a la información de ubicación. La API de Geolocalización W3C proporciona una interfaz fácil de acceso de los usuarios de la ubicación de JavaScript. El siguiente código de acceso a la ubicación actual del usuario en un navegador que soporte:
navigator.geolocation.getCurrentPosition(function(result) { //success handler }, function (result){ //failure handler }) Cuando se ejecuta este código, el navegador muestra un mensaje pidiendo permiso al usuario para que revele su ubicación actual. El diálogo que se muestra en Firefox se ve así:

Si el usuario niega el permiso, o se produce un error al intentar obtener la posición actual, el controlador de error se llama. De lo contrario, el controlador de éxito se llama con información sobre la ubicación actual. Esa información se presenta en forma de latitud y longitud (otro tipo de información puede estar disponible y, en función de la aplicación).
El API de Geolocalización W3C es compatible en Internet Explorer 9 +, Firefox 3.5 +, Safari 5 +, Chrome, Opera y 10.6, así como en Mobile Safari y Webkit en Android, por lo que es práctica bastante habitual.
El módulo Geo usa la API de Geolocalización cuando esté disponible, y cae de nuevo a una basada en IP a través de la búsqueda YQL pidgets.geoip tabla abierta cuando no esté disponible o si hay un error. Esta tabla es excepcionalmente útil porque usted puede buscar información sobre la ubicación de una dirección IP específica, o se puede omitir la dirección IP y se regresará la información de ubicación de la dirección IP que realiza la solicitud. La última parte se asegura de que usted necesita para hacer una sola solicitud para obtener información sobre la ubicación en lugar de dos (otras soluciones de utilizar uno para obtener la dirección IP y luego uno para obtener la información de ubicación para que la dirección IP).
De manera típica de YUI, el módulo Geo ofrece una interfaz optimizada para el acceso a la información de geolocalización. En lugar de ofrecer dos funciones de devolución de llamada, uno para el éxito y una para el fracaso, sólo tiene que pasar en uno. El objeto resultante tiene un success de propiedad que indica si la llamada logrado:
YUI({ gallery: 'gallery-2011.04.27-17-14' }).use('gallery-geo', function(Y) { Y.Geo.getCurrentLocation(function(response){ //check to see if it was successful if (response.success){ console.log(response.coords.latitude); console.log(response.coords.longitude); } }); }); Cuando una llamada de geolocalización se realiza correctamente, el success la propiedad es verdadera y response.coords se llena con al menos dos propiedades: latitude y longitude (si el nativo se utiliza la API, a continuación, todas las propiedades disponibles se copian a este objeto). También hay una source la propiedad en el objeto de que la respuesta es "nativa", si la información se recupera de la API nativa, o "pidgets.geoip", si fue recuperado por YQL. Si se produce un error, o si el usuario se niega a ofrecer información de ubicación, entonces success es falso.
Si la API de Geolocalización tiene un error, el módulo Geo intentará basadas en IP, las operaciones de búsqueda en su lugar. Sin embargo, si el usuario se niega a proporcionar información, el período de investigación basada en las operaciones de búsqueda no se realiza.
Tenga en cuenta que la API nativa es mucho más precisa que la localización de IP, por lo que no obtendrá los resultados misma calidad en los navegadores sin soporte nativo de geolocalización. Sin embargo, el módulo Geo es un buen primer paso para proveer experiencias basadas en la localización de sus usuarios.
Compartir y ampliar: Marcar con del.icio.us | Digg él! | reddit!
No hay comentarios aún »
RSS feed para los comentarios de esta entrada. TrackBack URI
Deja un comentario

Copyright © 2006-2011 Yahoo! Todos los derechos reservados. Política de privacidad - Condiciones del servicio
Powered by WordPress en Yahoo! Web Hosting .

