Bienvenue sur PostGIS.fr

Bienvenue sur PostGIS.fr , le site de la communauté des utilisateurs francophones de PostGIS.

PostGIS ajoute le support d'objets géographique à la base de données PostgreSQL. En effet, PostGIS "spatialise" le serverur PostgreSQL, ce qui permet de l'utiliser comme une base de données SIG.

Maintenu à jour, en fonction de nos disponibilités et des diverses sorties des outils que nous testons, nous vous proposons l'ensemble de nos travaux publiés en langue française.

source: trunk/workshop-foss4g/spatial_relationships_exercises.rst @ 81

Revision 62, 3.3 KB checked in by thomasg, 12 years ago (diff)

Fin correction typo et orthographe V2 du document

RevLine 
[1]1.. _spatial_relationships_exercises:
2
[62]3Partie 11 : Exercices sur les relations spatiales
4=================================================
[1]5
[22]6Voici un rappel des fonctions que nous avons vu dans les parties précédentes. Elles seront utiles pour les exercices !
[1]7
[62]8* :command:`sum(expression)` agrégation retournant la somme d'un ensemble
9* :command:`count(expression)` agrégation retournant le nombre d'éléments d'un ensemble
10* :command:`ST_Contains(geometry A, geometry B)` retourne TRUE si la géométrie A contient la géométrie B
11* :command:`ST_Crosses(geometry A, geometry B)` retourne TRUE si la géométrie A croise la géométrie B
12* :command:`ST_Disjoint(geometry A , geometry B)` retourne TRUE si les géométries ne s'intersectent pas
[22]13* :command:`ST_Distance(geometry A, geometry B)` retourne la distance minimum entre deux géométries
[62]14* :command:`ST_DWithin(geometry A, geometry B, radius)` retourne TRUE si la A est distante d'au plus radius de B
15* :command:`ST_Equals(geometry A, geometry B)` retourne TRUE si A est la même géométrie que B
16* :command:`ST_Intersects(geometry A, geometry B)` retourne TRUE si A intersecte B
17* :command:`ST_Overlaps(geometry A, geometry B)` retourne TRUE si A et B on un espace en commun, mais ne sont pas complÚtement incluses l'un dans l'autre.
18* :command:`ST_Touches(geometry A, geometry B)` retourne TRUE si le contour extérieur de A touche B
19* :command:`ST_Within(geometry A, geometry B)` retourne TRUE si A est hors de B
[1]20
[39]21Souvenez-vous les tables à votre disposition :
[1]22
[62]23 * ``nyc_census_blocks``
24
[1]25   * name, popn_total, boroname, the_geom
[62]26
[1]27 * ``nyc_streets``
[62]28
[1]29   * name, type, the_geom
[62]30
[1]31 * ``nyc_subway_stations``
[62]32
[1]33   * name, the_geom
[62]34
[1]35 * ``nyc_neighborhoods``
[62]36
[1]37   * name, boroname, the_geom
38
[22]39Exercices
[1]40---------
41
[62]42 * **"Quelle est la valeur géométrique de la rue nommée  'Atlantic Commons' ?"**
43
[1]44   .. code-block:: sql
45
46     SELECT the_geom
47       FROM nyc_streets
48       WHERE name = 'Atlantic Commons';
49
50   ::
[62]51
[1]52     01050000202669000001000000010200000002000000093235673BE82141F319CD89A22E514170E30E0ADFE82141CB2D3EFFA52E5141
[62]53
54 * **"Quels sont les quartiers et villes qui sont dans Atlantic Commons ?"**
55
[1]56   .. code-block:: sql
57
[62]58     SELECT name, boroname
59     FROM nyc_neighborhoods
[1]60     WHERE ST_Intersects(
61       the_geom,
62       '01050000202669000001000000010200000002000000093235673BE82141F319CD89A22E514170E30E0ADFE82141CB2D3EFFA52E5141'
63     );
64
65   ::
[62]66
67          name    | boroname
[1]68      ------------+----------
69       Fort Green | Brooklyn
70
[62]71
72 * **"Quelles rues touchent Atlantic Commons ?"**
73
[1]74   .. code-block:: sql
75
[62]76     SELECT name
77     FROM nyc_streets
[1]78     WHERE ST_Touches(
[62]79       the_geom,
[1]80       '01050000202669000001000000010200000002000000093235673BE82141F319CD89A22E514170E30E0ADFE82141CB2D3EFFA52E5141'
81     );
[62]82
[1]83   ::
[62]84
85          name
[1]86     ---------------
87      S Oxford St
88      Cumberland St
89
90   .. image:: ./spatial_relationships/atlantic_commons.jpg
91
[62]92
93 * **"Approximativement combien de personnes vivent dans (ou dans une zone de 50 mÚtres autour d') Atlantic Commons ?"**
94
[1]95   .. code-block:: sql
96
97     SELECT Sum(popn_total)
98       FROM nyc_census_blocks
99       WHERE ST_DWithin(
100        the_geom,
101        '01050000202669000001000000010200000002000000093235673BE82141F319CD89A22E514170E30E0ADFE82141CB2D3EFFA52E5141',
102        50
103        );
[62]104
105   ::
106
107     1186
108
Note: See TracBrowser for help on using the repository browser.