Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Geolocalizzazione

  1. #1

    Geolocalizzazione

    Ciao a tutti

    Tramite navigator mi vado a prendere le cordinate latidutine e longitudine in questo modo:

    codice:
    if(navigator.geolocation){
    navigator.geolocation.getCurrentPossition(mia_posizione);
    }
    
    function mia_posizione(position){
    let lat =position.coords.latidute;
    let lng = position.coords.longitude;
    
    alert(lat +", " + lng);
    }
    Perche mi da dati errati, mi da una posizione distante da me quasi 60 km
    Ultima modifica di techno; 21-04-2021 a 19:17

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,465
    Quote Originariamente inviata da techno Visualizza il messaggio
    Tramite navigator mi vado a prendere le cordinate latidutine e longitudine in questo modo:
    [...]
    Perche mi da dati errati, mi da una posizione distante da me quasi 60 km
    Dipende dal dispositivo che viene utilizzato e da quali sensori sono a disposizione: se si tratta di un telefono con GPS attivo, la posizione viene ottenuta con una certa precisione, mentre se si tratta di un comune PC esclusivamente collegato a un Wi-Fi, ovviamente la precisione sarà molto inferiore.

    L'oggetto che contiene i dati della posizione fornisce anche una proprietà accuracy che indica l'accuratezza con cui il dato è stato rilevato.

    Il browser fa il possibile con quello che ha, ma è ovvio che in mancanza di un GPS la stima della posizione non potrà che essere del tutto approssimativa.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Ok capito tutto ce solo un problema che non riesco a capire ho questo code:

    codice:
    <script src="https://maps.googleapis.com/maps/api/js?key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" async defer></script>
    
    function cercaGps() {
    
    
        var startPos;
        var geoOptions = {
            maximumAge: 5 * 60 * 1000,
            timeout: 10 * 1000ù
        }
    
        var geoSuccess = function(position) {
            startPos = position;
            var coords = new google.maps.LatLng(startPos.coords.latitude, startPos.coord.longitude);
            calcolaLocazionePiuVicina(coords);
        };
    
        var geoError = function(error) {
            cercaGps();
        }
    
        navigator.geolocation.getCurrentPosition(geoSuccess, geoError, geoOptions);
        return;
    }
    
    function calcolaLocazionePiuVicina(coords) {
        alert(coords);
    }
    
    Mi da questo errore:
    ReferenceError: google is not defined at geoSuccess

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,465
    Quote Originariamente inviata da techno Visualizza il messaggio
    Mi da questo errore:
    ReferenceError: google is not defined at geoSuccess
    L'errore dice tutto: non esiste alcun oggetto google definito, quindi non è stato importato correttamente lo script che eventualmente definisce quell'oggetto e consente quindi di usarlo.

    Ricorda che se devi importare uno script esterno e poi scriverne uno direttamente nella pagina, devi usare due tag <script> e non uno solo:

    codice:
    <script src="...."></script>
    // codice...
    Questo sopra è errato.

    codice:
    <script src="....">
      // codice...
    </script>
    Anche questo sopra è errato.

    codice:
    <script src="...."></script>
    <script>
      // codice...
    </script>
    Questo invece è corretto.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Be io ho questo preso direttamente dal google platform:

    codice:
        <script src="https://maps.googleapis.com/maps/api/js?key=xxxxxxxxxxxxxxxxxxxxxxxxxxxx&callback=initMap" async></script>
    <script>
    
    function cercaGps() {
        var startPos;
    
        var geoOptions = {
            maximumAge: 5 * 60 * 1000,
            timeout: 10 * 1000
        }
    
        var geoSuccess = function(position) {
            startPos = position;
            var coords = new google.maps.LatLng(startPos.coords.latitude, startPos.coords.longitude);
            calcolaLocazionePiuVicina(coords);
        };
    
        var geoError = function(error) {
            cercaGps();
        }
    
        navigator.geolocation.getCurrentPosition(geoSuccess, geoError, geoOptions);
        return;
    }
    
    cercaGps();
    </script>
    non mi sembra che ci sia qualcosa di sbagliato o no?

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,465
    Quote Originariamente inviata da techno Visualizza il messaggio
    Be io ho questo preso direttamente dal google platform:
    [...]
    non mi sembra che ci sia qualcosa di sbagliato o no?
    La funzione si chiamava "cercaGps"?
    Sicuramente avrai apportato modifiche al codice.

    In ogni caso, è già diverso da quello che hai postato nel messaggio precedente.
    Qual è invece in questo caso il problema? Sempre lo stesso?

    Hai definito inoltre lo script importato come async: siamo sicuri che sia già stato eseguito (e che quindi l'oggetto "google" che da errore sia già disponibile) quando ne fai uso nel tuo codice appena sotto?

    Per capire, occorre avere il codice significativo "integrale" (riportato qui con copia/incolla e non modificato in seguito) e l'indicazione dell'errore, se diverso.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.