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

    Conoscere le coordinate geografiche di un punto

    Buongiorno a tutti,

    ho sviluppato un sistema che, per far fronte ad una particolare esigenza, genera da una pagina web file kml per google earth.

    In pratica sono dei punti di interesse, che l'amministratore inserisce e che gli utenti del sito possono scaricarsi in vari modi.

    Ora, siccome sapere latitudine, longitudine e altitudine di un luogo è abbastanza laborioso per chi non è pratico, vorrei implementare una funzionalità che permetta all'amministratore di selezionare il punto su una mappa, magari digitando il nome della città, e ricavarne in automatico le coordinate.

    Qualcuno mi sa dare delle dritte? sono sicuro che qualcosa del genere deve per forza già esistere, magari con google maps.... ma non trovo nulla di interessate.

    Grazie in anticipo
    Paolo
    Paolo Monge
    Full Stack Web Developer & Strategist
    Come Nasce Un'idea

  2. #2
    le Google Maps API sono un po' li per questo...

    http://code.google.com/intl/it-IT/ap...ing/index.html
    I DON'T Double Click!

  3. #3
    ottimo grazie.

    Mi sai dare quale informazione per iniziare?

    grazie
    Paolo Monge
    Full Stack Web Developer & Strategist
    Come Nasce Un'idea

  4. #4
    Sto appunto finendo un Widget che lo usa, sostanzialmente devi registrare il sito nel quale lo metti chiedendo una KEY per il dominio (non ti preoccupare è questione di un secondo vai qui: http://code.google.com/intl/it-IT/apis/maps/signup.html e sei a posto). poi importi lo script con

    codice:
    <script type="text/javascript" src="http://maps.google.com/maps?file=api&amp;v=2.x&amp;key={la chiave che ti danno}"></script>
    Poi per usare l'oggetto devi fare:

    codice:
    var geocoder = new GClientGeocoder();
    
    geocoder.getLatLng(address, callback);
    Dove address è l'indirizzo che vuoi trovare le coordinate, e callback è una funzione che prende in ingresso un oggetto ottenuto dalla risposta JSON (non saprei dirti com'è fatto, io uso un'altra funzione, stampatelo e vedi com'è). Nell'Oggetto saranno presenti latitudine e longitudine dell'indirizzo inserito.
    I DON'T Double Click!

  5. #5
    Grazie mille,
    sto facendo un pò di prove, molto interessante
    Paolo Monge
    Full Stack Web Developer & Strategist
    Come Nasce Un'idea

  6. #6
    Ho trovato questo script che dovrebbe fare al caso mio... perchè su google maps va benissimo....

    ma invece io non riesco a farlo funzionare...

    in sostanza a me serve cliccare su un punto della mappa ed ottenere le coordinate...

    come in questo esempio...

    Codice PHP:
    function initialize() {
      if (
    GBrowserIsCompatible()) {
        var 
    map = new GMap2(document.getElementById("map_canvas"));
        
    map.setCenter(new GLatLng(37.4419, -122.1419), 13);

        
    GEvent.addListener(map,"click", function(overlay,latlng) {     
          if (
    latlng) {   
            var 
    myHtml "The GLatLng value is: " map.fromLatLngToDivPixel(latlng) + " at zoom level " map.getZoom();
            
    map.openInfoWindow(latlngmyHtml);
          }
        });
        
    map.addControl(new GSmallMapControl());
        
    map.addControl(new GMapTypeControl());
      }
    }&
    #8203; 
    ma con le coordinate geografiche e non di pixel


    in ogni caso ecco lo script che non riesco ad integrare... evidentemente non so come si usa... mi aiutate?


    Codice PHP:
    <?xml version="1.0" encoding="UTF-8"?>
    <Module>

    <ModulePrefs
        title="GPS Location" 
        description="Used to find GPS locations (Latitude &amp; Longitude) on a Google map."
        author="Jeff Grigg"
        author_email="jeffgrigg@charter.net"
        author_link="http://jeffgrigg.wordpress.com/"
        screenshot="http://gpsmaplet.googlecode.com/files/Screen%20Print.PNG"
        thumbnail="http://gpsmaplet.googlecode.com/files/Icon.PNG"
        height="200">
      <Require feature="sharedmap"/>
    </ModulePrefs>

    <Content type="html"><![CDATA[

    <h2>GPS Location</h2>


    Click on the map to show the GPS location (Latitude &amp; Longitude) of that location.</p>



    Many thanks to [url="http://thomas.duebendorfer.ch/"]Thomas Duebendorfer[/url] for the Position Finder Maplet, which inspired this Maplet.</p>

    <script>

      var gMap2 = new GMap2();

      function mapClick(gMarker, gLatLng) {
        if (gMarker) {
          displayMarkerPosition(gMarker);
        } else if (gLatLng) {
          createLocationMarker(gLatLng);
        }
      }

      function createLocationMarker(gLatLng) {
        var gMarker = new GMarker(gLatLng, {draggable: true, bouncy: true});
        gMap2.addOverlay(gMarker);

        displayMarkerPosition(gMarker);

        GEvent.addListener(gMarker, "dragstart", closeMapInfoWindow);

        GEvent.addListener(gMarker, "dragend", function() {
          displayMarkerPosition(gMarker);
        });
      }

      function closeMapInfoWindow() {
        gMap2.closeInfoWindow();
      }

      function displayMarkerPosition(gMarker) {
        GAsync(gMarker, 'getPoint', gMap2, 'getBounds', 'getSize', function(gLatLng, gLatLngBounds, gSize) {
          gMarker.openInfoWindowHtml(gpsString(gLatLng, gLatLngBounds, gSize));
        });
      }

      function gpsString(gLatLng, gLatLngBounds, gSize) {
        var ne = gLatLngBounds.getNorthEast();
        var sw = gLatLngBounds.getSouthWest();

        var degreesPerPixel = (ne.lat() - sw.lat()) / gSize.height;
        var goodDigits = Math.ceil(- Math.log(degreesPerPixel) / Math.log(10))
     
        var roundedLatLng = roundGLatLng(gLatLng, goodDigits);
     
        return "GPS: " + roundedLatLng.lat() + ", " + roundedLatLng.lng();
      }

      function roundGLatLng(gLatLng, goodDigits) {
        return new GLatLng(roundNumber(gLatLng.lat(), goodDigits), roundNumber(gLatLng.lng(), goodDigits));
      }

      function roundNumber(number, goodDigits) {
        var power = Math.pow(10, Math.ceil(goodDigits));
        return Math.round(number * power) / power;
      }

      GEvent.addListener(gMap2, "click", mapClick);

    </script>

    ]]></Content>
    </Module>
    Paolo Monge
    Full Stack Web Developer & Strategist
    Come Nasce Un'idea

  7. #7
    Ma guarda che per aggiungere il marker su di una mappa di Google Maps c'è la sua funzione apposita, non saprei dirti quale, ma è sicuramente nella lista delle funzionalità.

    Qui ci sono diversi esempi: http://code.google.com/intl/it-IT/ap...tion/examples/
    I DON'T Double Click!

  8. #8
    lo so.. grazie... ma il mio problema non è posizionare il marker, bensì sapere le sue coordinate.

    Il marker draggabile riesco a inserirlo senza problemi, è sapere le coordinate il problema.

    Per assurdo, potrebbe andare bene anche senza marker.. solo sapere le coordinate del mouse.
    Paolo Monge
    Full Stack Web Developer & Strategist
    Come Nasce Un'idea

  9. #9
    ah, e non puoi estrarre l'indirizzo del marker e usarlo per ottenere le coordinate? in alternativa, devi ottenere l'oggetto GMarker che corrisponde al marker che vuoi estrarre ed usare il metodo per ottenere le coordinate: http://code.google.com/intl/it-IT/ap...e.html#GMarker
    I DON'T Double Click!

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.