Muchas aplicaciones ahora necesitan conocer la localización de los usuarios para poder brindarle mejores servicios con los productos que ofrecen. Para esto vamos a mostrar dos posibles opciones de conocer la localización de los usuarios.
Primero vamos a tener una opción que se ofrece por parte de servicios web (API) de terceros que nos permite por medio de una llamada obtener una localización bastante a aproximada del cliente que esta usando nuestra pagina web.
Vamos a dar algunos ejemplos
Algunos de estos son gratis con algunas limitaciones y otros son de pago.
• Ip-api: http://ip-api.com/ este es gratuito.
• ipapi.co: https://ipapi.co/ cuenta con unos planes gratuitos y otros que se deben pagar.
• ipinfo.io: https://ipinfo.io/ también tiene planes gratuitos y de pago.
Estos apis se pueden llamar con jquery y una simple llamad usando Ajax.
Por ejemplo:
$.getJSON("http://ip-api.com/json/?callback=?", function (data) {
var table_body = "";
$.each(data, function (k, v) {
table_body += "
" + k + "
" + v + "
";
});
$("#GeoResults").html(table_body);
});
Esto podría ocurrir sin que el usuario se de cuenta que estamos tratando de buscar su localización. Lo cual en muchas cosas no es una buena estrategia ya que los usuarios podrían sentir una invasión de la privacidad.
Otra opción que tenemos es usar las características que tienen algunos navegadores de internet para encontrar la localización de los usuarios usando un simple código de javascript. En este caso el usuario debe de notificar si esta de acuerdo o no para brindar su localización.
Para la opción de usar las características nativas del navegador se le pregunta al usuario usando un popup donde este debe aceptar que el navegador brinde la localización actual. Lamentablemente si el usuario rechaza que el navegador permita brindar su localización entonces no podemos encontrar esta información.
Ahora varios estudios demuestran que los usuarios confían mas en los sitios web que les preguntar y notifican que tipo de información de ellos están usando. Por esta razón, la recomendación es implementar las características nativas del navegador para encontrar la ubicación del usuario.
Por lo tanto, vamos a comentar sobre la otra opción que seria utilizando el browser. En este caso como lo mencionamos antes el usuario debe de otorgar el permiso al browser de compartir esta información.
Como vemos en el ejemplo.
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(success, error, options);
var options = {
enableHighAccuracy: true,
timeout: 5000,
maximumAge: 0
};
function success(pos) {
var crd = pos.coords;
$(“#latitud”).html(crd.latitude);
$(“#longitude”).html(crd.longitude);
$(“#accuracy”).html(crd.accuracy);
};
function error(err) {
console.warn(`ERROR(${err.code}): ${err.message}`);
};
}
else {
console.log(‘Geolocation is not supported for this Browser/OS.’);
}
Voy adjuntar un documento html con las diferentes formas de encontrar la localización, con solo abrirlo en el navegador van a poder ver los diferentes resultados.