2013-01-31 5 views
3

Je travaille sur une application utilisant SDK version 1.0.2 qui doit gérer 400-500 marqueurs. D'une manière générale, les performances sont très bonnes, sauf lorsqu'une fenêtre d'informations personnalisée est visible. Le grand nombre de marqueurs et la fenêtre d'informations personnalisées provoquent le bégaiement de l'interface utilisateur.Grand nombre de marqueurs

Je me rends compte de la question est le nombre de marqueurs et quand je réduis le nombre de marqueurs de la question ne semble pas. J'ai essayé de réduire le nombre de marqueurs en ajoutant seulement ceux qui sont visibles pendant le rappel de didChangeCameraPosition, mais j'ai trouvé que l'ajout et la suppression de marqueurs ont un plus grand impact sur les performances.

Je ne sais pas ce que je peux essayer d'autre et des conseils sur la façon de procéder seraient très utiles.

+0

Avez-vous essayé une sorte d'algorithme de clustering? –

+0

Avez-vous essayé des demandes de limitation pour ajouter des marqueurs sur didChangeCameraPosition? Peut-être n'ajouter que des marqueurs lorsque l'utilisateur a cessé d'interagir avec lui pendant un certain nombre de millisecondes? – skarE

+0

Vous devriez probablement réutiliser votre infowindow personnalisé, et juste le mettre à jour. Au lieu d'en faire un nouveau pour chaque marqueur. – fellowworldcitizen

Répondre

0

La nouvelle version du SDK 1.4.0 publiée en juillet 2013 a une nouvelle méthode déléguée mapView:idleAtCameraPosition: qui sera appelée après la fin d'un mouvement de caméra. Donc, vous pouvez éventuellement déplacer la logique d'ajout de marqueur à cette méthode au lieu de didChangeCameraPosition qui sera appelée plusieurs fois au cours d'un changement de caméra. Cela devrait améliorer certaines performances.