geolocalizacion html5 ejemplo
Geolocalización HTML5 enableHighAccuracy ¿Verdadero, falso o mejor opción? (2)
El código mencionado aquí: http://jsfiddle.net/CvSW4/ no funcionó para mí durante el manejo de errores.
La razón es que las funciones de error aceptan un parámetro llamado ''posición'' pero usan un objeto en las funciones llamadas ''error''.
function errorCallback_highAccuracy(position) { ... }
function errorCallback_lowAccuracy(position) { ... }
La solución para solucionar esto fue cambiar los métodos de error para aceptar el valor de entrada como un parámetro llamado ''error'' y no ''posición'', ya que las devoluciones de llamada de error no aceptan una posición y arrojan un objeto de error en su lugar.
function errorCallback_highAccuracy(error) { ... }
function errorCallback_lowAccuracy(error) { ... }
Lo menciono aquí, porque no pude publicar en la página de ejemplo resultante y también, esta es la ubicación donde me conecté para encontrar el ejemplo de código mencionado anteriormente.
Tengo un problema con la función de geolocalización de HTML5. Uso el código a continuación para obtener datos de ubicación. Utilizo la opción "enableHighAccuracy: false" para trabajar con la función de GPS basada en células. La precisión es baja pero la respuesta es muy rápida. Pero algunas personas siempre usan GPS incorporado con su teléfono móvil, por lo que este código no funciona para ellos. Bu, si cambio la opción de accurency como "enableHalAccuracy: true", funciona para ellos. Pero esta vez, el código usa solo GPS incorporado. no basado en CELL GPS.
La pregunta -> ¿Cómo puedo hacer eso? Primero, intente posicionarme desde el GPS incorporado con tiempo de espera (por ejemplo, 5000 ms) si no se puede obtener posición en este momento, solo busque la posición basada en la célula para el tiempo de espera (por ejemplo, 10000ms). ser get en este momento, devolver un mensaje de error.
Aquí está el código que uso ahora.
Gracias por adelantado.
function getLocationfromGoogle() {
navigator.geolocation.getCurrentPosition(
function(pos) {
$("#lat_field").val(pos.coords.latitude);
$("#long_field").val(pos.coords.longitude);
var geocoder = new google.maps.Geocoder();
var latLng = new google.maps.LatLng(pos.coords.latitude,pos.coords.longitude);
geocoder.geocode({ ''latLng'': latLng}, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
//console.log(results[0].formatted_address);
$("#adresim").val(results[0].formatted_address);
}
else {
alert(''Google convertion is not succesfully done.'');
}
});
},function error(msg){
alert(''Please enable your GPS position future.'');
},{maximumAge:600000, timeout:5000, enableHighAccuracy: false}
);
}
También debe tener en cuenta que la implementación de esto varía desde el sistema operativo del teléfono al sistema operativo del teléfono: lo que funciona en Android puede o no funcionar en iOS, BlackBerry, WindowsPhone, etc.
Ya casi estás allí, solo necesitas:
- Especifique
enableHighAccuracy: true
(lo tiene configurado enfalse
) - Maneje el caso de error de tiempo de espera en el controlador de errores. Si el error de la consulta de alta precisión es el tiempo de espera, entonces inténtelo de nuevo con
enableHighAccuracy: false
.
Eche un vistazo a este código de ejemplo: http://jsfiddle.net/CvSW4/
También debe tener en cuenta que al probar esto en algunos dispositivos, devuelve la ubicación derivada de WiFi incluso cuando se enableHighAccuracy: true
.