Question

PostgreSQL prend en charge différents types géométriques sur le une boîte contenant de nombreux opérateurs géométriques et index GiST qui semblent offrir une indexation spatiale des données.

Et puis il y a aussi PostGIS , qui est une extension de PG.

Quelle est la différence entre le support spatial intégré dans PG et PostGIS?

Si mon application doit stocker des coordonnées géographiques (points, zones, polygones), puis effectuer efficacement des requêtes (telles que point-dans-polygone, intersection de polygone), ai-je besoin de PostGIS ou puis-je utiliser le (sans doute) plus commode et des types de données intégrés plus simples / syntaxe?

Était-ce utile?

La solution

Je voudrais tout d’abord clarifier les index GiST: GiST est en réalité un cadre permettant de créer des index pour les nouveaux types de données, et non pas pour un schéma d’indexation particulier. Ce framework est utilisé pour les types géométriques fournis avec Postgres, mais également pour un index de similarité de correspondance trigramme sur des colonnes de texte standard. Il est bien sûr utilisé par les schémas d’indexation de nombreux packages externes, parmi lesquels nous pouvons. nombre PostGIS.

Que les types de données géométriques standard fonctionnent pour vous ou que vous ayez besoin de PostGIS dépend entièrement de votre application.

PostGIS stocke les données géométriques dans une colonne de type "géométrie"; vous pouvez y stocker des données plus ou moins arbitraires (points, cercles, polygones, que-vous-avez-vous). L'indexation est rapide et assez sophistiquée: elle peut effectuer des opérations telles que l'indexation avec perte en utilisant des cadres de sélection pour des formes complexes qui ne sont pas indexables de manière raisonnable autrement. Différents systèmes de référence spatiale sont pris en charge, avec conversion automatique des résultats des requêtes. PostGIS prend également en charge les formats OpenGIS standard, qui peuvent faciliter le partage de données avec d’autres systèmes.

En revanche, l’ensemble des types géométriques internes et leurs index est beaucoup moins sophistiqué. Il n'y a pas de vrai " générique " type de géométrie; à la place, vous devez choisir que le type de colonne soit un point, une ligne, un cercle, un polygone ou ce que vous avez; pour les combinaisons, vous devrez probablement utiliser plusieurs colonnes. L'indexation n'est pas aussi bonne; il n’est pas possible d’indexer autant de types de formes différents (bien que vous puissiez ajouter un support pour les cadres de sélection en utilisant une colonne distincte et en générant manuellement les cadres de sélection) et les index ne sont probablement pas aussi rapides dans certaines situations. D'autre part, si les types géométriques internes répondent à vos besoins, vous bénéficiez du fait que votre application est plus facilement portable sur d'autres systèmes sur lesquels Postgres est installé, mais pas PostGIS.

Mon conseil serait de jouer avec les types géométriques internes et de voir si cela vous convient; si vous commencez à rencontrer des problèmes, essayez PostGIS.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top