gratis google geolocalizacion ejemplo current android html5 geolocation

google - Uso de la API de geolocalización HTML5 con el navegador Android 2.0+



get current position google maps javascript (2)

Google cambió el comportamiento de los servicios de ubicación en Chrome este enero. Uno de los cambios fue que Chrome no devuelve los coords de ubicación actuales si la conexión http no está encriptada. Tuvimos un problema similar hace unos meses, en el que los servicios de ubicación de nuestra aplicación web funcionarían bien en todos los clientes en todos los dispositivos (PC, teléfonos, tabletas, etc.) excepto el navegador Chrome. La instalación del certificado SSL en esa aplicación solucionó todos los problemas de ubicación geográfica. Espero que esto ayude.

Intento utilizar la geolocalización con la API HTML5 en dispositivos Android. Hice mis pruebas con un Galaxy S LC (equivalente a Galaxy S1). La versión de Android es 2.2.1.

He leído muchos temas al respecto, pero aún no encontré una solución.

Utilizo este código típico para geolocalización:

`

<script type="text/javascript"> document.write("Trying to locate you"); if(navigator.geolocation){ document.write("Geolocation is supported"); navigator.geolocation.getCurrentPosition(successCallback, errorCallback, { enableHighAccuracy : true, timeout : 10000, // 10s maximumAge : 0 } ); function successCallback(position){ document.write("You have been located. Latitude :" + position.coords.latitude +", longitude : " + position.coords.longitude); }; function errorCallback(error){ document.write("It didn''t work"); switch(error.code){ case error.PERMISSION_DENIED: document.write("Permission denied"); break; case error.POSITION_UNAVAILABLE: document.write("Position unavailable"); break; case error.TIMEOUT: document.write("Timeout"); break; case error.UNKNOW_ERROR: document.write("Unknown error"); break; } } } else{ document.write("La géolocalisation n''est pas supportée par le navigateur"); } </script>

Funciona bien en PC con Chrome y Opera (pero no con Firefox). También funciona con Opera en el dispositivo móvil. Pero no funciona con el navegador Android. Su versión es 2.2.1. Esto es lo que está sucediendo en este caso: 1. Aparecen los siguientes mensajes: "Tratando de localizarlo" "Se admite la geolocalización" 2. Después del tiempo especificado por el tiempo de espera (10s aquí) se muestra una página en blanco. Las funciones sucessCallback o errorCallback no son llamadas.

Cuando no especifico un tiempo de espera (tiempo de espera = infinito), funciona si el GPS está habilitado. Si no es así, también obtengo una página en blanco sin mensajes de error.

Intenté esta prueba de geolocalización HTML5 en el navegador de Android: http://html5demos.com/geo y tampoco funciona.

Intenté este código (primera respuesta). A veces funciona, pero tenemos que esperar 2 minutos para obtener el puesto (como se dijo en los comentarios).

También traté de obtenerlo a través de una vista web con todas las especificaciones necesarias, pero hace exactamente lo mismo.

Aquí se dice que para resolver este error en el navegador de Android solo debemos especificar la habilitación de HabilidadeActitud en verdadero, pero si el GPS no está activado todavía no se llama a ninguna función (sucessCallback o errorCallback).

Si alguien tiene una solución, sería una gran ayuda para mí.

Gracias por tu ayuda.

En realidad, la página en blanco fue causada por la función "document.write". Lo reemplacé por innerHTML y ahora funciona. Eso significa que se muestran errores, se llama al errorCallback.

Ahora el problema es que el navegador de Android solo puede determinar la posición usando el GPS (HighAccuracy). Si el GPS no está habilitado o si no puede levantar la posición (dentro de un edificio, por ejemplo), no devolverá una posición. Por el contrario, el navegador Opera utilizará la red de retransmisión (método Cell-ID) para determinar la posición (en ese caso, la precisión es inferior a 150 m).

¿Sabes cómo forzar al navegador de Android a usar la fuente de ID de celda?


Pruébalo así Deberias hacer eso.

<!DOCTYPE html> <html> <body> <p id="demo">Click the button to get your coordinates:</p> <button onclick="getLocation()">Try It</button> <script> var x=document.getElementById("demo"); function getLocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(showPosition,showError, { enableHighAccuracy : true, timeout : 10000, // 10s //maximumAge : 0 } ); } else{x.innerHTML="Geolocation is not supported by this browser.";} } function showPosition(position) { x.innerHTML="Latitude: " + position.coords.latitude + "<br>Longitude: " + position.coords.longitude; } function showError(error) { switch(error.code) { case error.PERMISSION_DENIED: x.innerHTML="User denied the request for Geolocation." break; case error.POSITION_UNAVAILABLE: x.innerHTML="Location information is unavailable." break; case error.TIMEOUT: x.innerHTML="The request to get user location timed out." break; case error.UNKNOWN_ERROR: x.innerHTML="An unknown error occurred." break; } } </script> </body> </html>