Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Markery na mapie google, długi czas ładowania, jak przyspieszyć
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Ardo
Może ktos zerknie na mój kod ładujący markary na mape, za długo łądują mi się punkty.
może ktoś ma pomysł jak , zrobić by przyspieszyć ładowanie.
Ilość markerów (punktów) = 2000
Będę wdzięczny za radę jak i pomoc



  1. <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
  2.  
  3. <script type='text/javascript'>
  4. $(document).ready( mapaStart );
  5. $(document).ready( GUnloadApi );
  6.  
  7.  
  8. function mapaStart()
  9. {
  10.  
  11.  
  12.  
  13. document.getElementById("mapka").style.width = '840px';
  14. document.getElementById("mapka").style.height = '800px'
  15. var myLatlng = new google.maps.LatLng(51.7592485, 19.4559833 );
  16.  
  17. var myOptions = {
  18. zoom: 6,
  19. center: myLatlng,
  20. mapTypeId: google.maps.MapTypeId.ROADMAP
  21. }
  22. map = new google.maps.Map(document.getElementById("mapka"), myOptions);
  23.  
  24.  
  25. {/literal}
  26. var i = 0;
  27. {section name='i' loop=$g}
  28. {literal}
  29.  
  30.  
  31. var text = 'opis.............';
  32.  
  33.  
  34. var location = new google.maps.LatLng({/literal}{$g[i][0]}{literal}, {/literal}{$g[i][1]}{literal} );
  35. var marker = new google.maps.Marker({
  36. position: location,
  37. map: map
  38. });
  39.  
  40.  
  41.  
  42. var j = i + 1;
  43. attachSecretMessage(marker, i, text);
  44. i++;
  45.  
  46. {/literal}{/section}{literal}
  47.  
  48. }
  49.  
  50.  
  51. function attachSecretMessage(marker, number, infoTabs) {
  52.  
  53.  
  54. var infowindow = new google.maps.InfoWindow(
  55. { content: infoTabs,
  56. zIndex: number
  57. });
  58.  
  59. infowindow.open(map,marker);
  60. });
  61. }
  62.  
  63.  
  64. </script>
  65.  
Pawel_W
poczytaj o cluster marker (coś w ten deseń, powinieneś znaleźć), jest to skrypt który grupuje Ci markery i w miarę przybliżania je pokazuje - przez to nie występuje problem takiego "lagowania" mapy smile.gif
lukasz1985
Moją radą jest aby całą zawartość tablicy markerów i ich pozycji wrzucić jako JSON do pola input hidden.
Następnie pobrać jego zawartość w skrypcie i przeparsować. Ostatecznie w pętli je wyświetlić i przypisać baloniki.

W chwili obecnej tworzy się (przy założeniu, że dla jednego markera jest potrzebne około 10linii kodu) - około 20000 linii kodu javascript.

Próbowałem w pętli for przez JS wrzucić na mapę 2500 markerów. Udało mi się i odczułem tylko minimalny spadek wydajności, prawie niezauważalny. Mam komputer dość stary - Core 2 duo (2 x 2,66) + 3gb ram + geforce 8600gt


Problem może być w tym, że do każdego markera jest przypisany balonik. Ale to też należy sprawdzić.

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.