2012-04-05 7 views
0

Ich versuche verschiedene Google Maps zu laden, je nachdem auf welchen Link sie klicken. Etwas wie folgt aus:Mehrere asynchrone Google Maps onclick

Zuerst klickt ein Benutzer auf einen Link wie ...

<a class="loadMap" href="?map&center=44.370987,-85.407715">load map 1</a> 

... oder ...

<a class="loadMap" href="?map&center=23.4567,-80.234523">load map 2</a> 

Die Google Maps API dann asynchron geladen wird (wenn es wurde nicht bereits geladen). Die Karte Zentrum vom href des Links genommen geklickt wird, und dann wird die Karte direkt unter dem Link angezeigt, die (etwas in jQuery wie $ (this) .Nach (showmap);) geklickt wurde

I‘ Ich habe Beispiele gefunden, die load a single map asynchronously, aber ich kann nicht herausfinden, wie Sie verschiedene Map-Parameter übergeben, um eine andere Karte zu laden und relativ zu dem Link, der geklickt wurde, zu platzieren.

+0

Um zu verdeutlichen, sind die Links dynamisch (Benutzer kann Mitte wählen) oder statisch? –

+0

Die Links enthalten jeweils unterschiedliche Parameter zu einem anderen Kartencenter. – Michael

Antwort

1
 function initialize(map_id, lat, lng) { 
      var myOptions = { 
       zoom : 8, 
       center : new google.maps.LatLng(lat, lng), 
       mapTypeId : google.maps.MapTypeId.ROADMAP 
      }; 
      var map = new google.maps.Map(document.getElementById(map_id), myOptions); 
     } 

     $(function() { 
      $('.loadMap').click(function(e) { 
       e.preventDefault(); 
       var cooordinates = this.hash.split('=')[1].split(','); 
       var lat = cooordinates[0]; 
       var lng = cooordinates[1]; 
       var map = this.id + '-map'; 

       if($('#maps_canvas #' + map).length === 0) { 
        $('<div class="map_style" id="' + map + '">').appendTo('#maps_canvas'); 
        initialize(map, lat, lng); 
       } 
      }); 
     }); 
  • HINWEIS: siehe Demo-Quelle für vollständigen Code
+0

Dies ist ein Anfang (ich werde damit spielen), aber ich brauche es, um dynamisch eine neue Karte auf der bestehenden Seite zu erstellen. Wenn der Benutzer auf einen Link klickt, wird diese Karte direkt unter dem Link erstellt, auf den sie geklickt haben (ohne Seitenaktualisierung). Potenziell könnten sie mehrere Karten gleichzeitig betrachten, wenn sie mehr als einen Link anklicken. – Michael

+0

@Michael: Mehrere asynchrone haben nichts damit zu tun, was Sie brauchen, dann sehen Sie die Demo und die Quelle ich habe es aktualisiert. –

+0

Ja !! Vielen Dank!! Genau das brauche ich. Ich muss ein bisschen damit spielen, um die Karten genau dorthin zu bringen, wo ich sie brauche, aber ich kann so viel herausfinden. – Michael