Obtenez la localisation GPS à partir du navigateur web
je développe un site web mobile basé, là j'ai intégré Google Maps, je dois remplir le champ " de " de Google Maps de manière dynamique.
est-il possible d'obtenir la localisation GPS à partir d'un navigateur web et de la remplir dynamiquement dans le champ "From" D'une carte Google?
7 réponses
si vous utilisez L'API de géolocalisation , ce serait aussi simple que d'utiliser le code suivant.
navigator.geolocation.getCurrentPosition(function(location) {
console.log(location.coords.latitude);
console.log(location.coords.longitude);
console.log(location.coords.accuracy);
});
vous pouvez également utiliser L'API de localisation de client de Google .
cette question a été abordée dans est-il possible de détecter la position GPS d'un navigateur mobile? et obtiennent des données de position à partir du navigateur mobile . Vous pouvez trouver plus d'informations y.
voir la discussion Comment obtenir les coordonnées GPS dans le navigateur
là vous avez le lien à l'application exemple Où suis-je? qui fonctionne sur les appareils mobiles. Je l'ai testé sur mon Android et il a démarré le module GPS pour obtenir les coordonnées actuelles. Vous pouvez analyser la source sur l'exemple vivant.
j'ai fait QR code pour l'accès rapide à partir de mobile:
pour donner une réponse un peu plus précise. HTML5 vous permet d'obtenir les coordonnées géographiques, et il fait un travail assez décent. Dans l'ensemble, la prise en charge de la géolocalisation par le navigateur est assez bonne, tous les navigateurs principaux sauf ie7 et ie8 (et opera mini). IE9 fait le travail, mais est le moins performant. Caisse caniuse.com:
http://caniuse.com/#search=geol
Également vous besoin de l'approbation de l'utilisateur pour accéder à leur emplacement, afin de faire je suis sûr que vous vérifiez et donnez des instructions décentes au cas où il est éteint. Surtout pour Iphone activer les permissions pour Safari est un peu encombrant.
utilisez ceci, et vous trouverez toutes les informations à 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>
il y a la API de géolocalisation , mais le support du navigateur est plutôt mince sur le terrain à l'heure actuelle. La plupart des sites qui se soucient de telles choses utilisent une base de données GeoIP (avec les réserves habituelles sur l'inexactitude d'un tel système). Vous pouvez également consulter les services de tiers nécessitant la coopération des utilisateurs tels que Fireagle .
utilisons la dernière fonctions fat arrow :
navigator.geolocation.getCurrentPosition((loc) => {
console.log('The location in lat lon format is: [', loc.coords.latitude, ',', loc.coords.longitude, ']');
})
Observables
/*
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();
}