Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Estrarre coordinate geografiche da mappa

    Salve a tutti,

    sto realizzando un sito web che (tra le altre cose) deve permettere all'utente di cliccare su una mappa e di ricevere le coordinate geografiche del punto in cui ha cliccato.

    Ho provato a smanettare con google maps ma non ne esco viva...

    C'è qualcuno che potrebbe darmi una mano!?

    Grazie in anticipo!

  2. #2
    Puoi usare le API di google Maps. Registrati per avere la key e poi usa un codice simile a questo:
    Codice PHP:
    <html>
    <
    head>
    <
    meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <
    meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
    <
    title>Google Maps JavaScript API v3 ExampleEvent Closure</title>
    <
    script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&amp;key=xxxxx"></script>
    <script type="text/javascript">
    var map;
    function initialize() {
      var myLatlng = new google.maps.LatLng(45.73494273523468, 7.340240603515635);
      var myOptions = {
        zoom: 8,
        center: myLatlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
      }
      map = new google.maps.Map(document.getElementById("mappa"), myOptions);
      
      google.maps.event.addListener(map, 'click', function(event) {
        alert(event.latLng);
      });
    }
    </script>
    </head>
    <body style="margin:0px; padding:0px;" onload="initialize()">
      <div id="mappa" style="width:100%; height:100%;    "></div>
    </body>
    </html> 
    Qui la versione live

  3. #3
    Originariamente inviato da bionicoz
    Puoi usare le API di google Maps.
    Grazie!!!!!!!
    Registrati per avere la key
    So che è una domanda scema ma... se io non ho pubblicato il sito web (quindi non ho un dominio) perchè è un progetto universitario che NON va pubblicato.... come mi registro?!

    Grazie ancora!

  4. #4
    leggo ora che per la versione 3 delle api (quelle che ho usato io nella page di test insomma) la key nn serve più.

  5. #5
    Originariamente inviato da bionicoz
    leggo ora che per la versione 3 delle api (quelle che ho usato io nella page di test insomma) la key nn serve più.
    Sei un grande!

    Ora però (da pivella quale sono ) ho ancora bisogno del tuoi aiuto.

    Devo "estrarre" il valore della latitudine per poterla utilizzare in alcune funzioni.

    Tanto per capirci: se metto una label "Label_Latitudine" come faccio a farla valorizzare con il valore della latitudine!?

    Allego un file con il codice.... c'è anche un commento dove spiego quello che "avrei intenzione di fare"...

    Grazie per la pazienza!

    codice:
    <script type="text/javascript">
        var map;
        var geocoder;
        var centerChangedLast;
        var reverseGeocodedLast;
        var currentReverseGeocodeResponse;
    
    
        function initialize() {
            var latlng = new google.maps.LatLng(32.5468, -23.2031);
            var myOptions = {
                zoom: 2,
                center: latlng,
                mapTypeId: google.maps.MapTypeId.ROADMAP
            };
            map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
            geocoder = new google.maps.Geocoder();
            
    
            setupEvents();
            centerChanged();
            
           
            
        }
    
        function setupEvents() {
            reverseGeocodedLast = new Date();
            centerChangedLast = new Date();
    
            setInterval(function() {
                if ((new Date()).getSeconds() - centerChangedLast.getSeconds() > 1) {
                    if (reverseGeocodedLast.getTime() < centerChangedLast.getTime())
                        reverseGeocode();
                }
            }, 1000);
    
            google.maps.event.addListener(map, 'zoom_changed', function() {
                document.getElementById("zoom_level").innerHTML = map.getZoom();
            });
    
            google.maps.event.addListener(map, 'center_changed', centerChanged);
    
            google.maps.event.addDomListener(document.getElementById('crosshair'), 'dblclick', function() {
                map.setZoom(map.getZoom() + 1);
            });
    
        }
    
        function getCenterLatLngText() {
            return '(' + map.getCenter().lat() + ', ' + map.getCenter().lng() + ')';
        }
    
        function centerChanged() {
            centerChangedLast = new Date();
            var latlng = getCenterLatLngText();
            document.getElementById('latlng').innerHTML = latlng;
            document.getElementById('formatedAddress').innerHTML = '';
            
    
    //pensavo aggiungere QUI questo pezzo
    //document.forms.Label_latitudine.Value= map.getCenter().lat();
    //ma non funziona.....
           
           
           
            currentReverseGeocodeResponse = null;
        }
    
        function reverseGeocode() {
            reverseGeocodedLast = new Date();
            geocoder.geocode({ latLng: map.getCenter() }, reverseGeocodeResult);
        }
    
        function reverseGeocodeResult(results, status) {
            currentReverseGeocodeResponse = results;
            if (status == 'OK') {
                if (results.length == 0) {
                    document.getElementById('formatedAddress').innerHTML = 'None';
                } else {
                    document.getElementById('formatedAddress').innerHTML = results[0].formatted_address;
                }
            } else {
                document.getElementById('formatedAddress').innerHTML = 'Error';
            }
        }
    
    
        function geocode() {
            var address = document.getElementById("address").value;
            geocoder.geocode({
                'address': address,
                'partialmatch': true
            }, geocodeResult);
        }
    
        function geocodeResult(results, status) {
            if (status == 'OK' && results.length > 0) {
                map.fitBounds(results[0].geometry.viewport);
            } else {
                alert("Geocode was not successful for the following reason: " + status);
            }
        }
    
        function addMarkerAtCenter() {
            var marker = new google.maps.Marker({
                position: map.getCenter(),
                map: map
            });
    
            var text = 'Lat/Lng: ' + getCenterLatLngText();
            if (currentReverseGeocodeResponse) {
                var addr = '';
                if (currentReverseGeocodeResponse.size == 0) {
                    addr = 'None';
                } else {
                    addr = currentReverseGeocodeResponse[0].formatted_address;
                }
                text = text + '
    ' + 'address: 
    ' + addr;
            }
    
            var infowindow = new google.maps.InfoWindow({ content: text });
    
            google.maps.event.addListener(marker, 'click', function() {
                infowindow.open(map, marker);
            });
        }
    
    </script>

  6. #6
    così dovrebbe andare...
    codice:
    document.forms[0].Label_latitudine.value= map.getCenter().lat();

  7. #7
    Originariamente inviato da bionicoz
    così dovrebbe andare...
    codice:
    document.forms[0].Label_latitudine.value= map.getCenter().lat();
    no anche cosi non funziona....
    con questo codice oltre a non inizializzare la label, non funziona piu nemmeno la mappa....

    altre idee?

  8. #8
    Dipende un po' anche dall'html che hai dietro... Peraltro con "label" intendi un <input type="text"/> o proprio una <label>? Valorizzare cosa significa per te? A che funzione devi passare lat/lng? sempre javascript? php?
    Cmq vedi qui se è questo che vuoi.

  9. #9
    Peraltro con "label" intendi un <input type="text"/> o proprio una <label>?
    Preferirei una label "vera e propria"

    Valorizzare cosa significa per te?
    Assegnare alla Label un valore dinamicamente, o meglio assegnare alla label il valore numerico della latitudine ricavata dall'indirizzo inserito dall'utente.

    A che funzione devi passare lat/lng? sempre javascript? php?
    Javascript


    Cmq vedi qui se è questo che vuoi.
    Si piu o meno è quello che voglio ottenere.
    L'unica pecca è che in questa soluzione l'utente non puo inserire l'indirizzo.
    Non capisco perche se aggiungo il codice

    codice:
    document.forms[0].lat.value= map.getCenter().lat();
    document.forms[0].lng.value= map.getCenter().lng();
    Come hai fatto tu, allo script che ho postato, non solo non mi valorizza la label o <input type="text"/>, ma non mi funziona nemmeno la mappa (non trova gli indirizzi e se provo a zoomare diventa tutta grigia).

    Cosa sbaglio?

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.