Pagina 1 di 10 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 94
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    387

    GoogleMap e centratura lat e lgt su comune...

    Mi scuso se è poco chiaro il titolo... Cerco di spiegare in maniera migliore...

    (premetto che essendo un sito commerciale non lo posto pubblicamente, ma se qualcuno vuole il link del sito di...
    "ispirazione" che fa esattamente quel che mi serve glielo passo in PM)....


    Allora,

    1 - su una pagina ho una mappa di Google (e ok...);

    2 - riesco a caricare da mysql, date latitudini e longitudini, alcuni punti e metterli sulla mappa (e ok...);

    3 - sto x implementare con jquery le canoniche 3 select regione - provincie - comune che si popolano dinamicamente da mysql (e ok...);

    4 - aggiungerò a queste latitudine e longitudine affinchè una volta selezionate la mappa si centri sulla località ma proprio qui nasce il problema....

    Mi vedo a manina 8100 e passa comuni d'italia per scoprire le loro coordinate da passare a GoogleMaps? Oppure esiste praticamente una qualche applicazione già fatta?

    Scusate un po' il contorsionismo mentale

  2. #2
    Ma usare il servizio di geocoding di google maps no? Hai delle controindicazioni?

    a)Se non ne hai fai semplicemente una richiesta di geocoding a google maps passandogli il nome del comune "on the fly".

    b)Se ne hai scriviti una funzione in js che una volta per tutte cicla su tutti i comuni che hai in db e ti salva lat e lng da qualche parte, (file, db, tavolette di cera) in modo da averle disponibili sul tuo server per ogni evenienza.



    Qui c'è un esempio che avevo scritto tempo fa giusto per vedere come funzionava tale servizio.
    E' solo una pagina di test, inserisci il nome del comune nell'address (possibilmente nella forma "comune, IT" per evitare che ti trovi un paese omonimo nello Swaziland) e clicca sul submit, (non usare "invio" che non è implementato). Spero ti possa essere utile.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    387
    intanto... grazie!
    E' esattamente quello di cui necessito, e grazie ancora.. (i forum servono a questo! A volte le idee semplici non si vedono!)

    Ho letto al volo le API su Google, e analizzato il tuo sorgente...

    La funzione che fa si che "Milano, IT" centri la mappa sul capoluogo lombardo son queste giusto?

    codice:
    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);
            }
    Mentre qui le API... corretto?

    http://code.google.com/intl/it-IT/ap...ion/geocoding/

    Grazie per il momento!

  4. #4
    Le api io le guarderei più qui: http://code.google.com/intl/it-IT/ap...html#Geocoding
    E sì, le funzioni di base ovvero che convertono indirizzo in lat/lng son quelle.
    ciao, Bio.

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    387
    Ci Sono quasi....

    Il mio script, dalle 3 select dinamiche, richiama alla fine il Comune (d'Italia) che deve passare al geocoder...

    Come hai espresso tu però su alcuni comuni fa confusione, pertanto volevo aggiungere la costante ", IT" a ogni comune....

    Mi aiuteresti per favore?

    Questo è il JS del geocoder:

    codice:
    function codeAddress() {
        var address = document.getElementById("comune").value;
        if (geocoder) {
          geocoder.geocode( { 'address': address}, function(results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
              map.setCenter(results[0].geometry.location);
              var marker = new google.maps.Marker({
                  map: map, 
                  position: results[0].geometry.location
    Come faccio ad aggiungere a document.getElementById("comune").value; la stringa costante ",IT"?

    Grazie!

    EDIT risolto... basta(va) aggiungere...

    codice:
    function codeAddress() {
        var ind1 = document.getElementById("comune").value;
    	var ind2 = " ,IT";
    	//var address = document.getElementById("comune").value;
    	var address = ind1 + ind2;

  6. #6
    Mi lascia un po' perplesso questa domanda...
    cmq cambia la riga
    codice:
    var address = document.getElementById("comune").value;
    così:
    codice:
    var address = document.getElementById("comune").value + ', IT';
    bb, bio.

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    387
    infatti bio tu a rispondermi e io a pensare alla soluzione!

    Lo so, la stanchezza fa brutti scherzi!!!

    E cmq grazie"!!!!!

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    387

    AIUTO.....

    Sono veramente in panne con la mia creazione... mi manca tanto cosi e non riesco più ad andare avanti.

    Ho oggi due mappe di google che fanno 2 cose diverse e che dovrei integrare:

    - FILE 1: da 3 select dinamiche richiama regione->pr->comune e centra la mappa sul comune (perfetto, funziona...). Questo il programma di partenza : http://code.google.com/apis/maps/doc.../services.html più o meno verso l'inizio, con codice:

    codice:
     var geocoder;
      var map;
      function initialize() {
        geocoder = new google.maps.Geocoder();
        var latlng = new google.maps.LatLng(-34.397, 150.644);
        var myOptions = {
          zoom: 8,
          center: latlng,
          mapTypeId: google.maps.MapTypeId.ROADMAP
        }
        map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
      }
    
      function codeAddress() {
        var address = document.getElementById("address").value;
        if (geocoder) {
          geocoder.geocode( { 'address': address}, function(results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
              map.setCenter(results[0].geometry.location);
              var marker = new google.maps.Marker({
                  map: map, 
                  position: results[0].geometry.location
              });
            } else {
              alert("Geocode was not successful for the following reason: " + status);
            }
          });
        }
      }
    
    <body onload="initialize()">
     <div id="map_canvas" style="width: 320px; height: 480px;"></div>
      <div>
        <input id="address" type="textbox" value="Sydney, NSW">
        <input type="button" value="Encode" onclick="codeAddress()">
      </div>
    </body>
    - FILE 2

    Dato un XML generato al volo da DB mysql, Gmaps si richiama e si costruisce i suoi bei segnalibri... seguendo questo esempio http://code.google.com/apis/maps/art...hpsqlajax.html


    Ora... Vorrei "naturalmente" unire le due cose, facendo in modo che la mappa, con "centratura automatica" sul comune, mi richiami i segnalini...

    "naturalmente" non ci riesco, ottenendo una bellissima pagina bianca in luogo della mappa oppure non carica proprio alcun tipo di segnalibro.

    La mia necessità è quella quindi di una mappa "autocentrante" che mostri anche markers da Mysql...

    Mi sto lambiccando pensando che i problemi possano nascere dai metodi di uno initialize() e dell'altro load()?

    No, non so più dove sbattere la testa, lo ammetto....

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    387
    Sono arrivato a modificare la function codeAddress in questa maniera

    codice:
    function codeAddress() {
    	var ind1 = document.getElementById("comune").value;
    	var ind2 = " ,IT";
    	var address = ind1 + ind2;
    	if (geocoder) {
    	  geocoder.geocode( { 'address': address}, function(results, status) {
    	  if (status == google.maps.GeocoderStatus.OK) {
    			  map.setCenter(results[0].geometry.location);
    
    
    // DA QUI COMINCIA IL "COPIA&INCOLLA DAL PRECEDENTE SCRIPT
    // PER POTER GENERARE TANTI MARKERS QUANTI
    // SONO PRESENTI NEL FILE XML GENERATO
    // DA generazione_xml.php
    
    
    
    				GDownloadUrl("generazione_xml.php", function(data) {
    				var xml = GXml.parse(data);
    				var markers = xml.documentElement.getElementsByTagName("marker");
    				for (var i = 0; i < markers.length; i++) {
    				var name = markers[i].getAttribute("name");
    				var address = markers[i].getAttribute("address");
    				var type = markers[i].getAttribute("type");
    				var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
    										parseFloat(markers[i].getAttribute("lng")));
    				var marker = new google.maps.Marker({
    				map: map, 
    				position: (parseFloat(markers[i].getAttribute("lat")),parseFloat(markers[i].getAttribute("lng"))),
    				icon: 'http://google-maps-icons.googlecode.com/files/factory.png' 
    				}
    				});
    				
    			  });
    			} else {
    			  alert("Geocode was not successful for the following reason: " + status);
    			}
    		  });
    		}
    	  }
    Solo che... non appare la mappa... non appena inserisco
    codice:
    GDownloadUrl("generazione_xml.php", function(data) {
    non appare più la mappa....

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    387
    Scusate se rispondo ancora una volta....

    Sono arrivato (forse) al dunque, e vi chiedo una mano per uscirne a questo punto....

    Dato un javascript, debbo recuperare in un ciclo for da un db mysql questi record:

    $nome
    $comune

    Come faccio (da javascript)?

    Visto che mi sa che a Gmaps non piace la commistione di V2 e V3....

    grazieeeee

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.