Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Google Maps API v3] ukrywanie markerów
warland
post 6.02.2018, 12:33:14
Post #1





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 22.01.2018

Ostrzeżenie: (10%)
X----


Mam taki kod:

  1. var bounds = new google.maps.LatLngBounds();
  2. var i, center;
  3.  
  4. for (i = 0; i < shape.length; i++) {
  5. bounds.extend(shape[i]);
  6.  
  7. }
  8. center = bounds.getCenter();
  9. var image = 'https://developers.google.com/maps/documentation/javascript/examples/full/images/beachflag2.png';
  10. var marker = new google.maps.Marker({
  11. position: { lat: center.lat() + land_size, lng: center.lng() },
  12. map: map,
  13. zIndex: 10,
  14. icon: image
  15. });
  16. google.maps.event.addListener(map, 'zoom_changed', function() {
  17. zoom = map.getZoom();
  18.  
  19. if (zoom < 7) {
  20. marker.setVisible(false);
  21. } else {
  22. marker.setVisible(true);
  23. }
  24. });
  25. marker.setVisible(false);



Problem polega na tym że w chwili odkrycia markerów ładuje się tylko jeden (mimo że np. jest ich 5)
Nie wiem jak ten problem rozwiązać.
Bez ukrywania markerów wszystko działa jak należy i pojawiają się wszystkie.

Czy jest ktoś kto może mi pomóc?

Ten post edytował warland 6.02.2018, 12:34:48
Go to the top of the page
+Quote Post
nospor
post 6.02.2018, 12:37:28
Post #2





Grupa: Moderatorzy
Postów: 36 441
Pomógł: 6290
Dołączył: 27.12.2004




wg powyzszegp kodu tworzysz tylko jeden marker a nie 5


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
nospor
post 6.02.2018, 12:52:00
Post #3





Grupa: Moderatorzy
Postów: 36 441
Pomógł: 6290
Dołączył: 27.12.2004




NA chwile obecna pokazales dwa niepowiazane ze soba kody. Tylko na jednym z nich widac ze tworzysz marker i tworzysz tylko jeden marker. Czy jestes w stanie pokazac kod gdzie tworzysz pozostale 4 markery?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
nospor
post 6.02.2018, 13:18:22
Post #4





Grupa: Moderatorzy
Postów: 36 441
Pomógł: 6290
Dołączył: 27.12.2004




Pewnie powiesz ze sie czepiam, ale w kodzie tym teraz nie widze miejsca gdzie odkrywasz marker w zaleznosci od levelu zoom...

Dobra, niewazne, widze wiecej i tak nie dostane.
Przyczyna twojego problemu jest banalna: w petli tworzysz zmienna marker, ktora w kazdej iteracji nadpisujesz wiec sila rzeczy bedzie ci dzialac tylko ostatni marker przy zmianie zoom. Markery masz zapisywac do tablicy, KTORA NIE BEDZIE nadpisywana w petli za kazdym razem co teraz robisz z tablica markers i notabene nigdzie nie uzywasz. Potem w podczas zmiany zoom masz leciec po tej tablicy a nie po zmiennej marker.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
warland
post 6.02.2018, 13:24:11
Post #5





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 22.01.2018

Ostrzeżenie: (10%)
X----


rozumiem. Czyli dla mnie na teraz to trochę czarna magia z tym utworzeniem tablic i jeszcze odpowiednie to połączenie ze skryptem by działało w ten sposób jaki sobie zamierzyłem.

Dziękuję za wyjaśnienie.

a to : "markers.push(marker);" jest w stanie jakoś rozwiązać problem? czy to też z tablicami jest związane?

Ten post edytował warland 6.02.2018, 13:28:04
Go to the top of the page
+Quote Post
nospor
post 6.02.2018, 13:30:04
Post #6





Grupa: Moderatorzy
Postów: 36 441
Pomógł: 6290
Dołączył: 27.12.2004




Cytat
a to : "markers.push(marker);" jest w stanie jakoś rozwiązać problem? czy to też z tablicami jest związane?

Tak,ten kod wlasnie wklada marker do tablicy markers.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
warland
post 6.02.2018, 15:17:56
Post #7





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 22.01.2018

Ostrzeżenie: (10%)
X----


Dziękuje.

Czy ktoś ma wiedzę by mi pomóc z tym kodem aby można było taką tablicę utworzyć? bo na razie każda próba z tym markers.push spala na panewce.
Go to the top of the page
+Quote Post
nospor
post 6.02.2018, 16:30:12
Post #8





Grupa: Moderatorzy
Postów: 36 441
Pomógł: 6290
Dołączył: 27.12.2004




A mozesz pokazac jedna z tych prob?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
warland
post 6.02.2018, 17:04:07
Post #9





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 22.01.2018

Ostrzeżenie: (10%)
X----


  1. var bounds = new google.maps.LatLngBounds();
  2. var i, center;
  3. var markers = [];
  4.  
  5. for (i = 0; i < shape.length; i++) {
  6.  
  7. center = bounds.getCenter();
  8. var image = 'https://developers.google.com/maps/documentation/javascript/examples/full/images/beachflag.png';
  9. var marker = new google.maps.Marker({
  10. position: { lat: center.lat() + land_size, lng: center.lng() },
  11. map: map,
  12. zIndex: 10,
  13. icon: image
  14. });
  15. bounds.extend(shape[i]);
  16. markers.push(marker);
  17. }


przepraszam ale kompletnie nie potrafię tego ogarnąć. Wszystko na zasadzie każdej informacji z google sprawdzam by jakoś to wdrożyć. Zazwyczaj potrafię znaleźć rozwiązanie jak tylko ktoś mi coś podpowie gdzie szukać, ale tym razem każda próba zakończona porażką.
Go to the top of the page
+Quote Post
nospor
post 6.02.2018, 17:08:20
Post #10





Grupa: Moderatorzy
Postów: 36 441
Pomógł: 6290
Dołączył: 27.12.2004




zapewne ten kod co tu masz znowu masz w petli php przez co wszystko co tam masz najwyzklej w swiecie nadpisujesz w kazdym obrocie petli...
Mowilem ci juz, ze tablicy z markerami nie mozesz miec w petli

O to
var markers = [];
ma byc poza petla


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
warland
post 6.02.2018, 17:24:01
Post #11





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 22.01.2018

Ostrzeżenie: (10%)
X----


Próbowałem przenosząc to w sekcje
  1. // Set maps variables
  2. var map_update_interval = <?php echo $update_timespan; ?>;
  3. var building_minimum = <?php echo $building_minimum; ?>;
  4. var leaderboard_update_interval = <?php echo $leaderboard_update_interval_minutes; ?> * 60 * 1000;
  5. var infoWindow = false;
  6. var boxes = [];
  7. var markers = [];

i też nic z tego
Go to the top of the page
+Quote Post
nospor
post 6.02.2018, 17:30:04
Post #12





Grupa: Moderatorzy
Postów: 36 441
Pomógł: 6290
Dołączył: 27.12.2004




Zrozum, ze to nie wszystko. Nigdzie nie pokazales kodu gdzie czytasz te tablice i na jej podstawie uaktywaniasz markery. Caly czas w tym watku pokazujesz urywki kodow i my mamy sie domyslac czy cos jeszcze jest czy nie. Bawi cie to? Bo mnie osobiscie coraz mniej.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 16.04.2024 - 16:28