Mon application charge une collection de ~ 100k éléments (rectangles) à partir d'un fichier map, puis génère un quadtree MX-CIF en tant qu'index pour la recherche rapide. Le quadtree est construit au démarrage et son contenu ne change pas à l'exécution.Algorithme de chargement en bloc pour MX-CIF quadtree
(Dans un des éléments quadtree, MX-CIF sont stockés par le plus petit noeud contenant pleinement ... les deux noeuds internes et feuilles peuvent contenir des objets)
Dans la première passe, je trouve les extensions extérieures des la collection, donc je sais quelle est la taille du nœud racine. Dans la deuxième étape, j'ajoute chaque élément au plus petit nœud qui le contient entièrement. Une fois qu'un nœud passe un certain nombre d'éléments, il est divisé et les enfants sont redistribués entre le nouveau parent et les quatre nœuds enfants.
Étant donné que j'ai tous les éléments à l'avant, comment pourrais-je construire l'arbre plus efficacement?
Pourriez-vous dériver une clé spatiale de chaque objet de manière efficace, basée sur le MBR, puis générer l'index à partir des clés? – Angst