Bonjour,
le projet sur lequel je bosse à l'heure actuelle est simple :
je dois récupérer une liste de données dans une base de données, puis les afficher sur une Google maps, étant donné que les données récupérées seront de plus en plus nombreuses; j'ai aussi intégré l'api clusterer modifiée à ma sauce afin de regrouper les data par régions au zoom mini, puis par départements puis laisser le mécanisme de base de l'api agir.

Tout ceci est actuellement mis en place et opérationnel; cependant, il faut environ 5-10s avant que mes 1500 markers soit affichés sous forme de clusters, je cherche donc à optimiser le code forcement :p

Actuellement voici comment ca fonctionne :
- map.js => création de la map et de ses options et appel d'une servlet via ajax en passant les zipCode des régions/départements en paramètre.
- ma servlet => je récupère la liste des zipCode et j'appelle une méthode afin de recuperer les data de ma bdd que je récupère sous forme d'une liste d'objets. Une fois cette liste récupérée , je fais appel à une méthode de ma classe JSONUtils en passant cette liste en paramètre.
-JSONUtils => la méthode en question, formate la liste en chaîne json et la renvoie.
- ma servlet => une fois la chaîne json récupérée; elle l'envoie en réponse de ma requête ajax à map.js
-map.js => si l'appel ajax est ok, je fais appel à la méthode createMarkers() de l'api clusterer.
- clusterer.js => là, je crée mes clusters région/départements en fonction du zoom de la map, pour chaque cluster créé, je boucle sur ma liste de données json, je compare les zipCode et si ceux-ci concordent, je met ma data dans le cluster , etc...

Ma question est là suivante :
d'une part, le fonctionnement est-il optimisé?
D'autre part; je pensais effectué le clustering coté serveur, par exemple en renvoyant une chaine JSON dans laquelle les data seraient déjà regroupées par region/departement, il suffirait donc ensuite de la décomposer coté client et d'actualiser mes clusters, mais je doute que le gain de performances soit si important que ca, voir inexistant :/