2011-07-05 11 views
16

Czy istnieje sposób, aby dodać infoWindow do kręgu utworzonego przez google.maps.CircleGoogle Maps v3 dodanie okna informacyjnego do kręgu

coś takiego

var circ = new google.maps.Circle({ 
      center:latlng, 
      clickable:false, 
      fillColor:colors[count], 
      fillOpacity:0.3, 
      map:map, 
      radius:radius, 
      strokeColor:colors[count], 
      strokeOpacity:0.3}); 

i

//create info window 
var infoWindow= new google.maps.InfoWindow({ 
    content: "Your info here" 
    }); 

//add a click event to the circle 
google.maps.event.addListener(circ, 'click', function(){ 
//call the infoWindow 
infoWindow.open(map, circ); 
}); 

lub alternatywnie czy istnieje sposób na utworzenie niewidocznego znacznika w środku okręgu, który można kliknąć, aby uzyskać dostęp do informacjiWindow

+0

lub alternatywnie jest jakiś sposób, aby stworzyć niewidzialny znacznik na środku koła, które można kliknąć aby uzyskać dostęp do infoWindow – trs

Odpowiedz

37

możesz mieć okno informacyjne dla nakładki koła. Ale musisz nieznacznie dostosować swój kod.

Najpierw należy ustawić clickable=true dla nakładki Koło (w przeciwnym razie zdarzenia w kręgu nie zostaną przetworzone).

Następnie należy zmienić kod odbiornika kliknięć. Umieszczenie koła jako parametru funkcji open() nie ma żadnego efektu (Circle nie jest właściwym rodzajem MVCObject, dla wyjaśnienia przeczytaj dokumentację funkcji.open()). Aby wyświetlić okno informacyjne, musisz podać jego pozycję - np. Stanowisko zdarzenia click, środek okręgu, ....

Kod jest następnie

google.maps.event.addListener(circ, 'click', function(ev){ 
    infoWindow.setPosition(ev.latLng); 
    infoWindow.open(map); 
}); 

lub

google.maps.event.addListener(circ, 'click', function(ev){ 
    infoWindow.setPosition(circ.getCenter()); 
    infoWindow.open(map); 
}); 

odpowiedzi na Twój komentarz: Można utworzyć sztuczka z niewidzialnym znacznikiem (po prostu umieść w pełni przezroczysty obraz jako ikonę znacznika), ale wolałbym rozwiązanie z nakładką kółka.

+0

co robi ev reprezentuje? i czy istnieje sposób na wskazanie użytkownikowi, aby kliknął koło, tak jak opcja "tytuł" w znaczniku – trs

+0

ev is MouseEvent (http://code.google.com/apis/maps/documentation/javascript/reference.html #MouseEvent). Nakładka okrągła nie ma żadnego wskaźnika tekstowego. Ale gdy kliknięcie jest prawdziwe, kursor zmienia się, gdy jest ustawiony nad kółkiem. Tworzenie wskaźnika tekstowego nie jest takie proste - zrobiłbym coś takiego z niestandardową nakładką i koleinowym nausznym odbiornikiem zdarzeń. – Tomik

+0

Próbowałem tej metody, ale nie działa. Otrzymuję zdarzenie click, ale nie mogę otworzyć infoWindow! czy masz jakąś inną wskazówkę? – Future2020

2

ustawić okna informacyjnego w którym mysz kliknięciu

google.maps.event.addListener(circ, 'click', function(ev){ 
    infoWindow.setPosition(ev.latLng); //<-- ev matches what you put^(mouse event) 
    infoWindow.open(map); 
}); 
Powiązane problemy