Quelques précisions sur les modifications prévues pour optimiser les calculs:
- on découpe des sous-ensembles tant qu'il y a des données qui intersectent la bbox courante
- le point d'arrêt est le nombre de bbox générées : on l'a mis à 500 par défaut, sachant que plus ce paramètre est grand, plus l'extent est détaillée
- à la fin on fait une union des bbox générées pour représenter l'extent des données
- on fait tourner le calcul directement sur le schéma en entier : l'algorithme fait un parcours des tables qui sont dans le schéma => du coup, on supprime la fonction
get_table_extent
de la classePgDatabaseInspector
qui n'est plus utilisée.
Les tests unitaires ont soulevé 2 cas particuliers:
- le cas où il n'y a pas de données (cf.
test_no_data
) => Ca peut tourner à l'infini tant qu'on a pas trouvé de données qui intersecte la bbox - le cas où les données sont 2 points (cf. test_import_data) => il y a moins d'objets que de bbox à générer (2 < 500) => On va prendre trop de temps à redécouper l'espace le temps de trouver ces 2 objets.
Dans le premier cas, on sort une extent vide, et dans le deuxième cas on ressort l'extent calculée sur l'enveloppe de chaque objet après les avoir "bufferisés" de 100 mètres.