Aller au contenu

Sujets conseillés

Posté

Bonjour,

Sur un site web, j'affiche une google map contenant plusieurs dizaines de milliers de points, formant entre eux différents tracés.

Le problème, vue la quantité énorme de points, c'est que le positionnement des points et le tracés des trajets, fait considérablement ramer le moteur javascript sur des ordinateurs peu puissants.

D'où ma question : comment optimiser cela ?

Quand l'utilisateur est à un faible niveau de zoom (vue de l'Europe entière, par exemple), il n'a pas besoin d'avoir un détail aussi précis : la plupart des points sont tellement rapprochés les uns des autres, qu'un seul point sur 100 ou sur 200 suffirait.

Ensuite, quand le niveau de zoom augmente, le nombre de points devrait idéalement augmenter. Finalement, c'est uniquement en zoom très rapproché (raz du sol) qu'on a vraiment besoin de voir chacun des points.

Mais je ne sais pas comment faire, ni même si c'est possible. Comment faire en sorte que le niveau de précision (c'est à dire le nombre de points) n'augemente que progressivement en fonction du niveau de zoom ?

Merci d'avance.

Posté

Bonjour,

De mémoire, tu peux utiliser un "getZoom()" pour savoir où en est l'utilisateur niveau zoom

Ensuite, tu peux décider d'afficher les points uniquement inclus dans les bornes de la map visible par l'utilisateur avec la méthode ".contains(lepoint)"

Enfin, tu peux passer à ton fichier qui te renvoie les points à afficher, le zoom "en cours" afin d'afficher un point sur 2 ou sur 3 :)

Portekoi

Posté

A partir de quelques dizaines de points, il vaut mieux générer un fichier kml (ou mieux kmz en format compressé) : en effet ce sont les moteurs de Google qui s'occupent de mettre en cache les images aux différents niveaux de zoom, c'est beaucoup plus rapide et le navigateur du client ne fait pas tout le travail ;)

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...