Sto sviluppando un sito Web mobile, lì ho integrato Google Maps, devo riempire dinamicamente il campo "Da" di Google Maps.
È possibile ottenere la posizione GPS dal browser Web e riempirla dinamicamente nel campo "Da" di una mappa di Google?
Sto sviluppando un sito Web mobile, lì ho integrato Google Maps, devo riempire dinamicamente il campo "Da" di Google Maps.
È possibile ottenere la posizione GPS dal browser Web e riempirla dinamicamente nel campo "Da" di una mappa di Google?
Risposte:
Se usi l' API di geolocalizzazione , sarebbe semplice come usare il seguente codice.
navigator.geolocation.getCurrentPosition(function(location) {
console.log(location.coords.latitude);
console.log(location.coords.longitude);
console.log(location.coords.accuracy);
});
Potresti anche essere in grado di utilizzare l'API per la posizione del cliente di Google .
Questo problema è stato discusso in È possibile rilevare la posizione GPS di un browser mobile? e Ottieni dati sulla posizione dal browser mobile . Puoi trovare maggiori informazioni lì.
Per dare una risposta un po 'più specifica. HTML5 ti consente di ottenere le coordinate geografiche e fa un lavoro abbastanza decente. Nel complesso il supporto del browser per la geolocalizzazione è abbastanza buono, tutti i principali browser tranne ie7 e ie8 (e opera mini). IE9 fa il lavoro ma è il peggiore. Acquista caniuse.com:
http://caniuse.com/#search=geol
Inoltre hai bisogno dell'approvazione del tuo utente per accedere alla sua posizione, quindi assicurati di verificarlo e di dare alcune istruzioni decenti nel caso in cui sia spento. Soprattutto per l'attivazione di Iphone i permessi per Safari è un po 'complicato.
Usa questo e troverai tutte le informazioni su 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>
C'è l' API GeoLocation , ma al momento il supporto del browser è piuttosto scarso. La maggior parte dei siti che si preoccupano di tali cose utilizzano un database GeoIP (con le consuete disposizioni sull'inesattezza di tale sistema). Puoi anche consultare servizi di terze parti che richiedono la cooperazione dell'utente come FireEagle .
Osservabile
/*
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();
}
Usiamo le ultime funzioni fat fat arrow :
navigator.geolocation.getCurrentPosition((loc) => {
console.log('The location in lat lon format is: [', loc.coords.latitude, ',', loc.coords.longitude, ']');
})