Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    227

    Geolocalizzazione: da coordinate a indirizzo

    Ciao a tutti!
    Stavo provando a modificare un esempio di geolocalizzazione tramite HTML5 e non ho riscontrato problemi.
    Ho una domanda però.. Nello script che ho, chiedo le coordinate dell'utente e tramite gMaps mostro l'indirizzo, la città e tutto il resto.
    Come posso stampare l'indirizzo dell'utente o la città? Riesco a stampare soltanto le coordinate

    codice:
    <html>
    <head>
    <title>Geolocalizzazione con HTML5</title>
    <script src="http://maps.google.com/maps/api/js?sensor=true"></script>
    <script>
    function mostraPosizione(){
    if(navigator.geolocation) {
    function getPosition(position) {
    var point = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
    var titlemarker = "Tu sei qui! 
    " +
    "Latitudine: " + position.coords.latitude+ "
    " +
    "Longitudine: " + position.coords.longitude+"
    " +
    "Precisione: " + position.coords.accuracy ;
    myOptions = {
    zoom: 15,
    center: point,
    mapTypeId: google.maps.MapTypeId.ROADMAP
    },
    mapDiv = document.getElementById("mapDiv"),
    map = new google.maps.Map(mapDiv, myOptions),
    marker = new google.maps.Marker({
    position: point,
    map: map,
    title: "Sei qui!"
    });
    var infowindow = new google.maps.InfoWindow({
    content: titlemarker
    });
    google.maps.event.addListener(marker, 'click', function() {
    infowindow.open(map,marker);
    });
    }
    function handle_errors(error){
    switch(error.code)
    {
    case error.PERMISSION_DENIED: alert("L''utente non ha condiviso i dati per la geolocalizzazione");
    break;
    case error.POSITION_UNAVAILABLE: alert("Non è possibile determinare la posizione attuale");
    break;
    case error.TIMEOUT: alert("Time Out nel determinare la posizione");
    break;
    default: alert("Errore sconosciuto");
    break;
    }
    }
    navigator.geolocation.getCurrentPosition(getPosition,handle_errors);
    }
    }
    mostraPosizione();
    </script>
    <style>
    #mapDiv {
    width:600px;
    height:400px;
    border:1px solid #efefef;
    margin:auto;
    -moz-box-shadow:5px 5px 10px #000;
    -webkit-box-shadow:5px 5px 10px #000;
    }
    </style>
    </head>
    <body onload="mostraPosizione();">
    <div id="mapDiv"></div>
    </body>
    </html>
    Grazie in anticipo per l'aiuto

    Thinker

  2. #2
    Ciao Thinker

    Prova ad utilizzare le funzioni di GeoCoding che ti offrono le Google Maps API, dovrebbero aiutarti traducendo una coppia di coordinate in un indirizzo.

    questo è il link alle referenze: http://code.google.com/apis/maps/doc....html#Geocoder

    se poi provi a fare due ricerche su 'geocoding google maps tutorial' dovresti trovare anche degli esempi.

    Spero di averti aiutato :-)
    ~ Sandro Paganotti

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    227
    Grazie mille spx2^^
    Ho trovato subito questo esempio: http://viralpatel.net/blogs/demo/goo...geocoding.html
    Funziona: se inserisco le coordinate mi dà la via e tutto Solo che ora non so più come trovare le coordinate dell'utente ._. non funzionano insieme i codici.. provo a modificare ancora e ti faccio sapere

    Thinker

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    227
    A dir la verità, non avrei bisogno di cartine varie.. La mia idea era di mostrare semplicemente la città di provenienza dell'utente e magari anche l'indirizzo, ma non riesco a farlo E' possibile farlo senza gMaps? Dovrei salvare i dati in una tabella mysql

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    49

    Io non riesco

    Io invece riesco a trovare indirizzo e tutto quanto da googleMap, ma non riesco a ricavare le coordinate dalle GeoLocation Api.
    In particolare, ho bisogno di avere le coordinate della mia posizione con Firefox, ma sono all'interno di una rete domestica e mi collego wifi con un router.
    Nella funzione WifiGeoPositionObject(location, address) della Geolocation Api di firefox, l'oggetto location risulta indefinito.
    Come posso fare? Quale funzione devo usare per avere le coordinate spaziali?
    Se è possibile una soluzione cross-browser ancora meglio.
    Saluti

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    49
    Come non detto: avevo fatto un piccolo errore. Posto la soluzione alla richiesta fatta sopra:
    Provatela con Chrome 5, Safari, Opera 10.5 e ditemi se funziona bene. Qualcuno sa come faccio a farla funzionare con Explorer?

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Documento senza titolo</title>
    <script type="text/javascript" src="mootools-core-1.3.1-full-compat-yc.js"></script>
    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
    <script type="text/javascript">
    var geocoder;

    window.addEvent("domready", function()
    {
    geocoder = new google.maps.Geocoder();
    });//chiude AddEvent

    function codeLatLng(position) {
    //var input = document.getElementById("latlng").value;
    //var latlngStr = input.split(",",2);
    if (navigator.geolocation)
    {
    navigator.geolocation.getCurrentPosition(

    function (position) {

    GeocodeReverse(position);

    },
    // next function is the error callback
    function (error)
    {
    switch(error.code)
    {
    case error.TIMEOUT:
    alert ('Timeout');
    break;
    case error.POSITION_UNAVAILABLE:
    alert ('Position unavailable');
    break;
    case error.PERMISSION_DENIED:
    alert ('Permission denied');
    break;
    case error.UNKNOWN_ERROR:
    alert ('Unknown error');
    break;
    }
    }
    );//chiude geolocation.getCurrentPosition
    }//chiude if navigator.geolocation
    }
    function GeocodeReverse(position)
    {
    var lat = position.coords.latitude//parseFloat(position.coords.latitude);
    var lng = position.coords.longitude//parseFloat(position.coords.longitude);
    var latlng = new google.maps.LatLng(lat, lng);
    geocoder.geocode({'latLng': latlng}, function(results, status) {
    if (status == google.maps.GeocoderStatus.OK) {
    if (results[1]) {
    alert(results[1].formatted_address);
    } else {
    alert("No results found");
    }
    } else {
    alert("Geocoder failed due to: " + status);
    }
    });
    }
    </script>

    </head>

    <body>
    <div>
    <input type="button" value="Reverse Geocode" onclick="codeLatLng()">
    </div>

    </body>
    </html>

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 © 2024 vBulletin Solutions, Inc. All rights reserved.