Bonjour,

J'ai développé un petit script qui fait ceci:
- affiche une google map
- en fonction de la position lat+lon du membre inscrit, pose un marker sur la carte
- recherche dans un rayon de 100km tous les autres membres et les pose sur la carte
- lors du clique sur un marker une fonction JS est lancée et permet de charger (ajax) la bulle d'info (info bubble).

Code écrit en 2 lignes compressée pour chaque marker:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
// dessin du marker
var marker=new google.maps.Marker({
  position:new google.maps.LatLng(-29.844283,30.9965778), map:gf_map, icon:icon_MS_CB_1, title:'durban'}
);  
 
// chargement de la bulle
google.maps.event.addListener( marker,'click',(  function(markerArg,content){
 return function(){
  infoWindow.setContent(content); infoWindow.setOptions({maxWidth:300});
  infoWindow.open(gf_map, markerArg);
  axGetBubble(infoWindow,1425);
 };
})(marker, content));
Tout fonctionne très bien.

Le problème est le suivant, cela représente parfois jusqu'à 1000 markers. Et le code javascript est généré par php représente 2000 lignes, tout cela inclu dans la page chargée chez le user (ce qui ralenti vraiment le chargement, quand cela ne plante tout simplement pas).

Le problème est que la liste des markers est différente à chaque affichage (recherche par rayon).

Donc je ne sais pas comment faire pour aléger et accélérer le chargement.

J'avais pensé à cette solution un peu bricolage: créer le fichier JS sur le serveur pour chaque chargement de la page et écrire une fonction de purge de tous les fichiers créés... C'est à dire un fichier pour chaque chargement de la page.

J'espère avoir été assez clair...

Cédric