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 @ 39

Revision 39, 3.3 KB checked in by nbozon, 13 years ago (diff)

Section 10,111,12 and 13 corrected/re-corrected

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