Bonjour à tous,

Je suis en train de développer une application qui contient une cartographie.

Les données cartographiques sont stockées dans une base PostgresQL & PostGIS (GIS pour Geographique Information System).

Pour le moment, je requête, et j'affiche. Mais étant donnée qu'il y a des millions de données, l'application est longue à charger, et pareil lorsque l'utilisateur se déplace ou zoom/dezoom.

Alors je me questionne sur "comment améliorer la lecture des informations"

J'ai pensé aux tiles, comme font google maps ainsi que d'autres afficheurs de carte sur le web. J'ai une vague idée de comment faire, mais ce qui m'embête c'est que si l'on veut changer quelque chose sur le rendu (genre la couleur des autoroutes), il faut recréer tous les tiles avec cette nouvelle config, et ça peut prendre du temps.. J'aimerai éviter ça. De plus, d'un certain point de vue, j'aimerai proposer à l'utilisateur d'afficher plus ou moins de routes, de villes etc. Partant d'images, ça me paraît difficile, ou alors l'étape de génération des tiles sera trop trop longue le temps de créer les images pour chaque type de config possible..

Une autre solution serait de faire plusieurs fichiers xml, un contenant les points, l'autre les routes (avec les bounding box précalculées) et un autre les landcovers (toujours avec les bouding box précalculées), voir détailler d'avantage selon l'échelle de l'entité (autoroute européenne, autoroute nationale, route nationale, communale etc. ou villes par nombre d'habitants), requêtable via XPath.

Mais un fichier xml requété via XPath serait-il plus performant qu'une base de données optimisée pour le requêtage géographique ?

Peut-être faudrait-il un fichier binaire mais dans ce cas on oublie XPath et je doute que mes algos soient plus performant que libXml/libXPath concernant le filtrage dans les requêtes..

Enfin bref je suis dans le flou, est-ce que vous pouvez m'aiguiller ? Car chaque solution prendrait des semaines à implémenter, du coup j'ai peur de perdre mon temps en faisant de mauvais choix..

Merci beaucoup,

A bientôt