Changeset 37 for trunk/workshop-foss4g/geometries.rst
- Timestamp:
- 26/09/2011 16:17:55 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/workshop-foss4g/geometries.rst
r20 r37 1 1 .. _geometries: 2 2 3 Partie 8 : les géometries3 Partie 8 : Les géometries 4 4 ===================== 5 5 … … 7 7 ------------ 8 8 9 Dans :ref:`une partie précédente<loading_data>` nous avons charger différentes données. Avant de commencer à jouer avec, commençons par regarder quelques exemples simples. Depuis pgAdmin, choisissez encore la base de donnée **nyc** et ouvrez l'outils de requêtage SQL. Copiez cette exemple de code SQL (aprÚs avoir supprimer le contenu présentdéfaut si nécessaire) puis exécutez-le.9 Dans :ref:`une partie précédente<loading_data>` nous avons charger différentes données. Avant de commencer à jouer avec, commençons par regarder quelques exemples simples. Depuis pgAdmin, choisissez de nouveau la base de donnée **nyc** et ouvrez l'outil de requêtage SQL. Copiez cette exemple de code SQL (aprÚs avoir supprimer le contenu présent par défaut si nécessaire) puis exécutez-le. 10 10 11 11 .. code-block:: sql … … 33 33 Dans le respect de la spécification Simple Features for SQL (:term:`SFSQL`), PostGIS fournit deux tables pour récupérer et s'informer sur les types de géométries disponibles dans une base de données spécifique. 34 34 35 * La premiÚre table, ``spatial_ref_sys``, définit tout les systÚme de projection connude la base de données et sera décrite plus en détals plus tard.35 * La premiÚre table, ``spatial_ref_sys``, définit tout les systÚmes de projection connus de la base de données et sera décrite plus en détals plus tard. 36 36 * La seconde table, ``geometry_columns``, fournit une liste de toutes les "entités" (définit comme un objet avec un attribut géométrique) et les détails de base relatives à ces entités. 37 37 … … 54 54 * La colonne ``type`` définit le type de géométrie comme décrit plus tÃŽt, nous avons déjà vu les points et les lignes. 55 55 56 En interrogeant cette table, les clients SIG et les libraires peuvent déterminer quoi attendre lors de la récup ration des données et peuvent réaliser les opération de reprojection, transformation ou rendu sans avoir ainspecter chaque géométrie.57 58 Réprésenter des objets du mo de réel56 En interrogeant cette table, les clients SIG et les libraires peuvent déterminer quoi attendre lors de la récupération des données et peuvent réaliser les opération de reprojection, transformation ou rendu sans avoir à inspecter chaque géométrie. 57 58 Réprésenter des objets du monde réel 59 59 ----------------------------------- 60 60 61 La spécification Simple Features for SQL (:term:`SFSQL`), le standard ayant guidé le développement de PostGIS, définit comment les objets du monde réel doivent être représentés. En considérant une forme continue à une seule résolution fixe, nous obten u un piÚtre représentation des objets. SFSQL considÚre uniquement les représentations en 2 dimensions. PostGIS a étendu cela en ajoutant les représentation en 3 et 4 dimensions, plus récemment la spécification SQL-Multimedia Part 3 (:term:`SQL/MM`) a officiellement définit sa propre représenation.62 63 Notre table exemple contient différents types de géométries Nous pouvons récupérer les informations de chaque objetsen utilisant les fonctions qui lisent les métadonnées de la géométrie.61 La spécification Simple Features for SQL (:term:`SFSQL`), le standard ayant guidé le développement de PostGIS, définit comment les objets du monde réel doivent être représentés. En considérant une forme continue à une seule résolution fixe, nous obtenons une piÚtre représentation des objets. SFSQL considÚre uniquement les représentations en 2 dimensions. PostGIS a étendu cela en ajoutant les représentation en 3 et 4 dimensions. Plus récemment, la spécification SQL-Multimedia Part 3 (:term:`SQL/MM`) a officiellement définit sa propre représentation. 62 63 Notre table exemple contient différents types de géométries. Nous pouvons récupérer les informations de chaque objet en utilisant les fonctions qui lisent les métadonnées de la géométrie. 64 64 65 65 * :command:`ST_GeometryType(geometry)` retourne le type de la géométrie … … 90 90 :align: center 91 91 92 Un **point** spatiale représente une localisation unique sur la Terre. Ce point est représenté par une seule coordonnée (incluant soit 2, 3 ou 4 dimensions). Les points sont utilisés pour représenter des objets lorsque le détails exact du contour n'est pas important à une échelle donnée. Par exemple, les villes sur une carte du monde pourraient être décrite sous la forme de points alors qu'une carte régionale utiliserait une représentation polygonale des villes.92 Un **point** représente une localisation unique sur la Terre. Ce point est représenté par une seule coordonnée (incluant soit 2, 3 ou 4 dimensions). Les points sont utilisés pour représenter des objets lorsque le détails exact du contour n'est pas important à une échelle donnée. Par exemple, les villes sur une carte du monde peuvent être décrite sous la forme de points alors qu'une carte régionale utiliserait une représentation polygonale des villes. 93 93 94 94 .. code-block:: sql … … 102 102 POINT(0 0) 103 103 104 Cerain ts des fonctions spécifiques pour travailler avec les points sont :104 Ceraines des fonctions spécifiques pour travailler avec les points sont : 105 105 106 106 * :command:`ST_X(geometry)` retourne la composante X … … 115 115 WHERE name = 'Point'; 116 116 117 La table des stations de métro sde la ville de New York (``nyc_subway_stations``) est un ensemble de données représenté sous la forme de points. La requête SQL suivante reverra la géométrie associée à un point (dans la colonne :command:`ST_AsText`).117 La table des stations de métro de la ville de New York (``nyc_subway_stations``) est un ensemble de données représenté sous la forme de points. La requête SQL suivante reverra la géométrie associée à un point (dans la colonne :command:`ST_AsText`). 118 118 119 119 .. code-block:: sql … … 130 130 :align: center 131 131 132 Une **ligne** est un chemin entre plusieurs points. Elle prend la forme d'un tablea y ordonné de deux (ou plus) points. Les routes et les riviÚres sont tipyquement représenté sous la forme de lignes. Une ligne est dire **fermée** si elle commence et se fini en un même point. Elle est dite **simple** si elle ne se coupe pas ni se toucheelle-même (sauf à ses extrémités si elle est fermée). Une ligne peut être à la fois **fermée** et **simple**.133 134 Le réseau des rues de New York (``nyc_streets``) a été chargé plus tÃŽt. Cet ensemble de données contient les détails comme le nom et le type. Une rue du monde réelle pourrait être constituée de plusieurs lignes, chacune représentant une file de laavec différents attributs.132 Une **ligne** est un chemin entre plusieurs points. Elle prend la forme d'un tableau ordonné de deux (ou plusieurs) points. Les routes et les riviÚres sont typiquement représentés sous la forme de lignes. Une ligne est dite **fermée** si elle commence et fini en un même point. Elle est dite **simple** si elle ne se coupe pas ou ne se touche pas elle-même (sauf à ses extrémités si elle est fermée). Une ligne peut être à la fois **fermée** et **simple**. 133 134 Le réseau des rues de New York (``nyc_streets``) a été chargé auparavant. Cet ensemble de données contient les détails comme le nom et le type. Une rue du monde réel pourrait être constituée de plusieurs lignes, chacune représentant une file avec différents attributs. 135 135 136 136 La requête SQL suivante retourne la géométrie associée à une ligne (dans la colonne :command:`ST_AsText`) : … … 174 174 Un polygone est représenté comme une zone. Le contour externe du polygone est représenté par une ligne simple et fermée. Les trous sont représenté de la même maniÚre. 175 175 176 Les polygones sont utilis er pour représenter les objets dont les tailles et la forme sont importants. Les limites de villes, les parks, les batiments ou les cours d'eau sont habituellement représenté par des polygones lorsque l'échelle est suffisament élevée pour voir distinguer leurs zones. Les routes et les riviÚres peuvent parfois être représenté comme des polygones.177 178 La requête SQL suivante retournera la géométrie associée à un polygon (dans la colonne :command:`ST_AsText`).176 Les polygones sont utilisés pour représenter les objets dont les tailles et la forme sont importants. Les limites de villes, les parcs, les bâtiments ou les cours d'eau sont habituellement représenté par des polygones lorsque l'échelle est suffisament élevée pour voir distinguer leurs zones. Les routes et les riviÚres peuvent parfois être représenté comme des polygones. 177 178 La requête SQL suivante retournera la géométrie associée à un polygone (dans la colonne :command:`ST_AsText`). 179 179 180 180 .. code-block:: sql … … 193 193 POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(1 1, 1 2, 2 2, 2 1, 1 1)) 194 194 195 Le premier polygon a seulement une ligne. Le second a un "trou". La plupart des systÚmes de rendu graphique supportent le concept de "polygone", mais les systÚme SIG sont les seuls a accepter que les polygones puissecontenir des trous.195 Le premier polygone a seulement une ligne. Le second a un "trou". La plupart des systÚmes de rendu graphique supportent le concept de "polygone", mais les systÚme SIG sont les seuls à accepter que les polygones puissent contenir des trous. 196 196 197 197 .. image:: ./screenshots/polygons.png 198 198 199 Certaines des fonctions spatiales spécifique de traitement des polygones sont :199 Certaines des fonctions spatiales spécifiques de traitement des polygones sont : 200 200 201 201 * :command:`ST_Area(geometry)` retourne l'aire de polygones 202 * :command:`ST_NRings(geometry)` retourne le nombre de contour (habituellement 1, plus lorsqu'il y a des trous)203 * :command:`ST_ExteriorRing(geometry)` re ntourne le contour extérieur202 * :command:`ST_NRings(geometry)` retourne le nombre de contours (habituellement 1, plus lorsqu'il y a des trous) 203 * :command:`ST_ExteriorRing(geometry)` retourne le contour extérieur 204 204 * :command:`ST_InteriorRingN(geometry,n)` retourne le contour intérieur numéro n 205 205 * :command:`ST_Perimeter(geometry)` retourne la longueur de tout les contours … … 223 223 ~~~~~~~~~~~~~~~~ 224 224 225 Il y a quatre types de collections, qui regroupe ensembles plusieurs géométries simples.225 Il y a quatre types de collections, qui regroupe plusieurs géométries simples ensemble. 226 226 227 227 * **MultiPoint**, une collection de points 228 228 * **MultiLineString**, une collection de lignes 229 229 * **MultiPolygon**, une collection de polygones 230 * **GeometryCollection**, une collection shétérogÚne de n'importe quelle géométrie (dont d'autre collections)231 232 Les collections sont un concept présents dans les logiciels SIG plus que dans les application de rendu graphique générique. Elles sont utiles pour directement modeler les objets du monde réel comme des objet spatiaux. Par exemple, comment modéliser une parcelle quié coupée par un chemin ? Comme un **MultiPolygon**, ayant une partie de chaque coté du chemin.230 * **GeometryCollection**, une collection hétérogÚne de n'importe quelle géométrie (dont d'autre collections) 231 232 Les collections sont un concept présents dans les logiciels SIG plus que dans les applications de rendu graphique génériques. Elles sont utiles pour directement modeler les objets du monde réel comme des objet spatiaux. Par exemple, comment modéliser une parcelle qui a été coupée par un chemin ? Comme un **MultiPolygon**, ayant une partie de chaque coté du chemin. 233 233 234 234 .. image:: ./screenshots/collection2.png … … 255 255 * :command:`ST_Length(geometry)` retourne la longueur totale des composantes de types lignes 256 256 257 258 259 257 Entré / Sortie des géométries 260 258 ----------------------------- 261 259 262 Dans la base de données, les géométries sont sto quées dans un format utilisé uniquement par le programme PostGIS. Afin que des programmes externes puissent insérer et récupérer les données utiles, elles ont besoin d'être converties dans un format compris par l'application. Heureusement, PostGIS supporte un grand nombre de formats en entrée et en sortie :260 Dans la base de données, les géométries sont stockées dans un format utilisé uniquement par le programme PostGIS. Afin que des programmes externes puissent insérer et récupérer les données utiles, elles ont besoin d'être converties dans un format compris par l'application. Heureusement, PostGIS supporte un grand nombre de formats en entrée et en sortie : 263 261 264 262 * Format texte bien connu (Well-known text :term:`WKT`) … … 321 319 .. image:: ./geometries/represent-06.png 322 320 323 En plus de pouvoir générer les différents formats en sortie (WKT, WKB, GML, KML, JSON, SVG), PostGIS permet aussi de lire 4 de ces formats (WKT, WKB, GML, KML). La plupart des application utilisent des fonctions créant des géométries à l'aide du format WKT ou WKB, mais les autres marchent aussi. Voici un exemple qui lit du GML et retourne du JSON :321 En plus de pouvoir générer les différents formats en sortie (WKT, WKB, GML, KML, JSON, SVG), PostGIS permet aussi de lire 4 de ces formats (WKT, WKB, GML, KML). La plupart des applications utilisent des fonctions créant des géométries à l'aide du format WKT ou WKB, mais les autres marchent aussi. Voici un exemple qui lit du GML et retourne du JSON : 324 322 325 323 .. code-block:: sql … … 332 330 ------------------- 333 331 334 `Populate_Geometry_Columns <http://postgis.org/docs/Populate_Geometry_Columns.html>`_: s'assure que les colonnes géométriques on les contraintes spatiales appropriées et sont présentes dans la table geometry_columns.332 `Populate_Geometry_Columns <http://postgis.org/docs/Populate_Geometry_Columns.html>`_: s'assure que les colonnes géométriques on les contraintes spatiales appropriées et qu'elles sont présentes dans la table geometry_columns. 335 333 336 334 `ST_Area <http://postgis.org/docs/ST_Area.html>`_: retourne l'aire de la surface si c'est un polygon ou un multi-polygone. Pour le type "geometry" l'aire est dans l'unité du SRID. Pour les "geography" l'aire est en mÚtres carrés. … … 346 344 `ST_AsEWKT <http://postgis.org/docs/ST_AsEWKT.html>`_: retourne la représentation de la geometrie au format Well-Known Text (WKT) avec la métadonnée SRID. 347 345 348 `ST_AsGeoJSON <http://postgis.org/docs/ST_AsGeoJSON.html>`_: retourne la géométrie sau format GeoJSON.349 350 `ST_AsGML <http://postgis.org/docs/ST_AsGML.html>`_: retourne la géométrie sau format GML version 2 ou 3.351 352 `ST_AsKML <http://postgis.org/docs/ST_AsKML.html>`_: retourne la géométrie sau format KML. Nombreuses variantes. Par défaut : version=2 et precision=15.353 354 `ST_AsSVG <http://postgis.org/docs/ST_AsSVG.html>`_: retourne la géométrie sau format SVG.346 `ST_AsGeoJSON <http://postgis.org/docs/ST_AsGeoJSON.html>`_: retourne la géométrie au format GeoJSON. 347 348 `ST_AsGML <http://postgis.org/docs/ST_AsGML.html>`_: retourne la géométrie au format GML version 2 ou 3. 349 350 `ST_AsKML <http://postgis.org/docs/ST_AsKML.html>`_: retourne la géométrie au format KML. Nombreuses variantes. Par défaut : version=2 et precision=15. 351 352 `ST_AsSVG <http://postgis.org/docs/ST_AsSVG.html>`_: retourne la géométrie au format SVG. 355 353 356 354 `ST_ExteriorRing <http://postgis.org/docs/ST_ExteriorRing.html>`_: retourne une ligne représentant le contour extérieur du polygone. Retourne NULL si la géométrie n'est pas un polygone. Ne fonctionne pas avec les multi-polygone. … … 382 380 `ST_Perimeter <http://postgis.org/docs/ST_Perimeter.html>`_: retourne la longueur du contours extérieur d'une valeur de type ST_Surface ou ST_MultiSurface (polygone, multi-polygone). 383 381 384 `ST_SRID <http://postgis.org/docs/ST_SRID.html>`_: retourne l'identifiant du systÚme de référence s spatialesdéfinit dans la table spatial_ref_sys d'un objet de type ST_Geometry.382 `ST_SRID <http://postgis.org/docs/ST_SRID.html>`_: retourne l'identifiant du systÚme de référence spatiale définit dans la table spatial_ref_sys d'un objet de type ST_Geometry. 385 383 386 384 `ST_StartPoint <http://postgis.org/docs/ST_StartPoint.html>`_: retourne le premier point d'une ligne.
Note: See TracChangeset
for help on using the changeset viewer.