Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Google Maps API v3] Opisy markerów w MarkerClusterer, Problem z dodaniem chmurek do markerów grupowanych MarkerClusterer
czaj
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 22.11.2012

Ostrzeżenie: (0%)
-----


Witam

Mam problem jak w temacie.
Tworzę na swojej stronie mapę z Google Maps API v3. Do dodawania markerów używam funkcji:

  1. function dodajMarker(wspolrzedne,idPunktu) {
  2. var marker = new google.maps.Marker({
  3. position: wspolrzedne,
  4. map: mapa,
  5. }); // dodanie markera
  6. var infowindow = new google.maps.InfoWindow();
  7. google.maps.event.addListener(marker, 'click', function() {
  8. var markerContent = '<div class="infoWindow">Bla Bla</div>';
  9. infowindow.setContent(markerContent);
  10. infowindow.setZIndex(1);
  11. infowindow.open(mapa,marker);
  12. }); //dodanie do markera chmurki
  13. }


Tutaj wszystko działa pięknie, ale jak chcę użyć opcji MarkerClusterer ( http://google-maps-utility-library-v3.goog...le_example.html ) to już nie jest tak kolorowo.

Tworzę kod:

  1. var wspolrzedneArray = [];
  2. var idPunktuArray = [];
  3. var ArrayMarkerClusterer = [];
  4.  
  5. function dodajMarkerTest(wspolrzedneArray,idPunktuArray) {
  6. for (x = 0; x < wspolrzedneArray.length; x++){
  7. var latLng = wspolrzedneArray[x]
  8. var marker = new google.maps.Marker({
  9. position: latLng,
  10. map: mapa,
  11. });
  12. ArrayMarkerClusterer.push(marker);
  13. }
  14. var mcOptions = {gridSize: 50, maxZoom: 10};
  15. var markerCluster = new MarkerClusterer(mapa, ArrayMarkerClusterer, mcOptions);
  16. }


No i tutaj już "za Chiny" nie wiem jak dodać
  1. google.maps.event.addListener(marker, 'click', function());

żeby chmurki wyświetlały się prawidłowo. Pomoże ktoś(IMG:style_emoticons/default/questionmark.gif)

Ten post edytował czaj 22.11.2012, 12:35:53
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
lukasz1985
post
Post #2





Grupa: Zarejestrowani
Postów: 205
Pomógł: 43
Dołączył: 5.03.2012

Ostrzeżenie: (0%)
-----


Działa normalnie:
[JAVASCRIPT] pobierz, plaintext
  1.  
  2. function initialize() {
  3. var center = new google.maps.LatLng(37.4419, -122.1419);
  4.  
  5. var map = new google.maps.Map(document.getElementById('map'), {
  6. zoom: 3,
  7. center: center,
  8. mapTypeId: google.maps.MapTypeId.ROADMAP
  9. });
  10.  
  11. var markers = [];
  12. for (var i = 0; i < 100; i++) {
  13. var dataPhoto = data.photos[i];
  14. var latLng = new google.maps.LatLng(dataPhoto.latitude,
  15. dataPhoto.longitude);
  16. var marker = new google.maps.Marker({
  17. position: latLng
  18. });
  19. markers.push(marker);
  20. google.maps.event.addListener(marker,'click', function () {
  21. alert('click marker')
  22. })
  23. }
  24. var markerCluster = new MarkerClusterer(map, markers, {'zoomOnClick': false});
  25. google.maps.event.addListener(markerCluster, 'clusterclick', function(cluster) {
  26. cluster.getCenter(); // LatLng - środek klastra
  27. cluster.getMarkers(); // Tablica markerów, które zostały objęte przez klaster
  28. cluster.getSize(); // Rozmiar - chyba liczba markerów
  29. console.log(cluster)
  30. });
  31. }
  32. google.maps.event.addDomListener(window, 'load', initialize);
[JAVASCRIPT] pobierz, plaintext


Możesz sprawdzić czy przypisujesz zdarzenia wewnątrz pętli "for" i czy funkcja wywołująca zdarzenie znajduje się w zasięgu pętli. Jeśli będziesz potrzebował mogę zamieścić kod na jsFiddle.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.10.2025 - 03:04