2.8 KiB
id, title, challengeType, forumTopicId, dashedName
id | title | challengeType | forumTopicId | dashedName |
---|---|---|---|---|
587d7faf367417b2b2512be8 | Ottenere dati di geolocazione per trovare le coordinate GPS di un utente | 6 | 18188 | get-geolocation-data-to-find-a-users-gps-coordinates |
--description--
Un'altra cosa speciale che puoi fare è accedere alla posizione attuale del tuo utente. Ogni browser ha integrato un navigatore che può dare questa informazione.
Il navigatore ottiene la longitudine e latitudine attuali.
Vedrai un prompt per permettere o negare l'accesso di un sito alla tua posizione. La sfida può essere completata con entrambe le opzioni, se il codice è corretto.
Se lo permetti, vedrai il testo del telefono nell'output cambiare con la tua latitudine e longitudine.
Ecco il codice che lo fa:
if (navigator.geolocation){
navigator.geolocation.getCurrentPosition(function(position) {
document.getElementById('data').innerHTML="latitude: " + position.coords.latitude + "<br>longitude: " + position.coords.longitude;
});
}
Come prima cosa, controlla che l'oggetto navigator.geolocation
esista. Se esiste, il metodo getCurrentPosition
è chiamato su quell'oggetto, iniziando la richiesta asincrona per la posizione dell'utente. Se la richiesta ha successo, la funzione callback nel metodo viene eseguita. La funzione ha accesso ai valori di latitudine e longitutine nell'oggetto position
usando la notazione a punto, e aggiorna l'HTML.
--instructions--
Aggiungi il codice di esempio nel tag script
per controllare la posizione attuale dell'utente e inserirla nell'HTML.
--hints--
Il tuo codice dovrebbe usare navigator.geolocation
per accedere alla posizione attuale dell'utente.
assert(code.match(/navigator\.geolocation\.getCurrentPosition/g));
Il tuo codice dovrebbe usare position.coords.latitude
per mostrare la latitudine della posizione dell'utente.
assert(code.match(/position\.coords\.latitude/g));
Il tuo codice dovrebbe usare position.coords.longitude
per mostrare la longitudine della posizione dell'utente.
assert(code.match(/position\.coords\.longitude/g));
Dovresti mostrare la posizione dell'utente all'interno dell'elemento div
con id="data"
.
assert(
code.match(/document\.getElementById\(\s*?('|")data\1\s*?\)\.innerHTML/g)
);
--seed--
--seed-contents--
<script>
// Add your code below this line
// Add your code above this line
</script>
<h4>You are here:</h4>
<div id="data">
</div>
--solutions--
<script>
// Add your code below this line
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
document.getElementById('data').innerHTML = "latitude: " + position.coords.latitude + "<br>longitude: " + position.coords.longitude;
});
}
// Add your code above this line
</script>
<h4>You are here:</h4>
<div id="data">
</div>
</section>