2010-12-05 5 views
0

Ich verwende gMap. Ich habe folgendes in meiner Sicht:gMap Google Maps aus Out-of-Map-Links auswählen

<script> 
$("#map4").gMap({ markers: [{ latitude: 47.651968, 
            longitude: 9.478485, 
            html: "<a href='abc'>ABC</a>" }, 
         zoom: 10 }); 
</script> 

<div id="abc"> 
<a href="">ABC</a> 
Description for ABC 
</div> 

aus der Karte kann ich den Link in der Info-Fenster klicken, die auf die Id'ed DIV scrollt. Ich möchte auch auf den ABC-Link außerhalb der Karte klicken, wenn Sie darauf klicken, wird angezeigt, wo sich ABC in der Karte befindet (so wie das Infofenster angezeigt wird).

Wie erreiche ich das? Vielen Dank.

Antwort

0

Sie müssen das Zentrum der Karte grundsätzlich auf ein neues Lat und Lon setzen. Etwas wie folgt aus:

map.setCenter(new google.maps.LatLng(this.latitude, this.longitude)); 

das Infofenster zu öffnen einfach

myInfoWindow.open(map, yourMarker); 

Durch die Verwendung von Javascript Sie ein Ereignis <a> ‚s onClick hinzufügen und die Karte mit neuen Zentrum.

UPDATE w/Beispiel: http://jsfiddle.net/kjy112/FEexA/

HTML: ein div für unsere Google Map erstellen und auch einen Link für die Mitte/info gewinnen popup.

<div id='map_canvas'></div> 
<a id='marker' href='javascript:showMarker();'>Click Me!</a> 

CSS: set Dimension für das Google-Karte Gebiet

#map_canvas{ 
    width: 400px; 
    height: 400px; 
} 

Javascript Aktion: set Karte mit einigem zufälligen lat lon

var map = new google.maps.Map(document.getElementById('map_canvas'), { 
    zoom: 10, 
    center: new google.maps.LatLng(35.137879, -82.836914), 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
}); 

unseren Marker mit seinem Informationsfenster erstellen:

var myMarker = new google.maps.Marker({ 
    position: new google.maps.LatLng(47.651968, 9.478485), 
}); 

myMarker['infoWin'] = new google.maps.InfoWindow({ 
    content: "<div id='infoWindow'>Your Info Window!</div>" 
}); 

Hier ist Code, der bearbeitet wird, wenn "Click Me!" Anker wird geklickt:

function showMarker() { 
    map.setCenter(myMarker.position); //makes myMarker center of map 
    myMarker.setMap(map); //add the marker to the map 
    myMarker['infoWin'].open(map, myMarker); //opens the info window associate with the marker 
} 
+0

Es tut mir leid, mir ein Beispiel zu zeigen? Vielen Dank. – Victor

+0

hat dieses Training für dich @victor gemacht? – kjy112

+0

Entschuldigung, habe gerade ein Update von dir realisiert. Es wird stattdessen die gesamte Map neu geladen, und vorherige Marker wurden ebenfalls neu geladen. Danke für deine Mühe. Bin dankbar. – Victor

2

Obwohl es eine späte Antwort ist, könnte es jemanden in der Zukunft helfen. Sie könnten etwas verwenden wie ..

google.maps.event.trigger(markers[i], 'click'); 

wo Marker ist die Anordnung von Markierungen auf der Karte.

Rufen Sie den obigen Code auf dem Link auf klicken.

Verwandte Themen