javascript - usuario - Obtener la ubicación de GPS desde el navegador web
obtener latitud y longitud javascript (7)
Existe la dev.w3.org/geo/api/spec-source.html , pero el soporte del navegador es bastante escaso en la actualidad. La mayoría de los sitios que se preocupan por tales cosas usan una base de datos GeoIP (con las condiciones habituales sobre la inexactitud de dicho sistema). También puede consultar los servicios de terceros que requieren la cooperación del usuario, como FireEagle .
Estoy desarrollando un sitio web basado en dispositivos móviles, allí he integrado Google Maps, necesito completar el campo ''De'' de Google Maps de forma dinámica.
¿Es posible obtener la ubicación del GPS desde el navegador web y llenarla en el campo ''De'' de un Google Map de forma dinámica?
Observable
/*
function geo_success(position) {
do_something(position.coords.latitude, position.coords.longitude);
}
function geo_error() {
alert("Sorry, no position available.");
}
var geo_options = {
enableHighAccuracy: true,
maximumAge : 30000,
timeout : 27000
};
var wpid = navigator.geolocation.watchPosition(geo_success, geo_error, geo_options);
*/
getLocation(): Observable<Position> {
return Observable.create((observer) => {
const watchID = navigator.geolocation.watchPosition((position: Position) => {
observer.next(position);
});
return () => {
navigator.geolocation.clearWatch(watchID);
};
});
}
ngOnDestroy() {
this.sub.unsubscribe();
}
Para dar una respuesta un poco más específica. HTML5 le permite obtener las coordenadas geográficas, y hace un trabajo bastante decente. En general, el soporte del navegador para la geolocalización es bastante bueno, todos los principales navegadores excepto ie7 y ie8 (y mini de ópera). IE9 hace el trabajo pero es el peor ejecutante. Pagar caniuse.com:
http://caniuse.com/#search=geol
También necesita la aprobación de su usuario para acceder a su ubicación, así que asegúrese de verificar esto y dar algunas instrucciones decentes en caso de que esté apagado. Especialmente para Iphone, activar permisos para Safari es un poco engorroso.
Si usa la API de geolocalización , sería tan simple como usar el siguiente código.
navigator.geolocation.getCurrentPosition(function(location) {
console.log(location.coords.latitude);
console.log(location.coords.longitude);
console.log(location.coords.accuracy);
});
También puede usar la API de ubicación de cliente de Google .
Este problema se ha discutido en ¿Es posible detectar la ubicación GPS de un navegador móvil? y Obtener datos de posición del navegador móvil . Puede encontrar más información allí.
Use esto y encontrará toda la información en http://www.w3schools.com/html/html5_geolocation.asp
<script>
var x = document.getElementById("demo");
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
}
function showPosition(position) {
x.innerHTML = "Latitude: " + position.coords.latitude +
"<br>Longitude: " + position.coords.longitude;
}
</script>
Usemos las últimas funciones de flechas gordas :
navigator.geolocation.getCurrentPosition((loc) => {
console.log(''The location in lat lon format is: ['', loc.coords.latitude, '','', loc.coords.longitude, '']'');
})
Ver la discusión Cómo obtener coordenadas GPS en el navegador
Ahí tienes el enlace a la aplicación de ejemplo ¿Dónde estoy? eso funciona en dispositivos móviles. Lo probé en mi Android e inició el módulo GPS para obtener las coordenadas actuales. Puedes analizar la fuente en el ejemplo viviente.
He creado un código QR para acceder rápidamente desde el móvil: