Estoy trabajando en una aplicación que solicita geolocalización para representar datos alrededor de un lugar. Se pregunta la ubicación con la primera página cargada.
Intenté 2 enfoques:
Del lado del servidor con la gema 'geocodificador', funciona en mi PC pero en Iphone y Android funciona a veces (¿tal vez debido al tiempo de espera? Establecí el valor máximo pero no cambia nada)
def localize @location = lookup_ip_location if @location.data["loc"].nil? @user.latitude = 48.49 @user.longitude = -2.7 else @user.latitude = @location.data['loc'].split(',').first.to_f @user.longitude = @location.data['loc'].split(',').second.to_f end endDel lado del cliente con el script 'navigator.geolocation.getCurrentPosition', funciona en la PC pero en el dispositivo móvil, es aleatorio y no puedo identificar el problema principal. En Iphone, a veces, necesito desbloquear alguna configuración de privacidad, en Android, no lo sé.
<div class="container"> <input type="text" id="latitude"> <input type="text" id="longitude"> </div> <script> let latloc = document.getElementById('latitude'); let lonloc = document.getElementById('longitude'); var options = { enableHighAccuracy: true, timeout: 5000, maximumAge: 0 }; function error(err) { console.warn(`ERROR(${err.code}): ${err.message}`); } function setGeoCookie(position) { var cookie_val = position.coords.latitude + "|" + position.coords.longitude; document.cookie = "lat_lng=" + escape(cookie_val); latloc.value = position.coords.latitude; lonloc.value = position.coords.longitude; } function getGeoLocation() { navigator.geolocation.getCurrentPosition(setGeoCookie, error, options); } getGeoLocation(); </script>¿Cómo administra la ubicación (y el permiso, si es necesario) en una aplicación de Rails?
Gracias