Partie 11 : Exercices sur les relations spatiales

Voici un rappel des fonctions que nous avons vu dans les parties précédentes. Elles seront utiles pour les exercices !

  • sum(expression) agrégation retournant la somme d’un ensemble
  • count(expression) agrégation retournant le nombre d’éléments d’un ensemble
  • ST_Contains(geometry A, geometry B) retourne TRUE si la géométrie A contient la géométrie B
  • ST_Crosses(geometry A, geometry B) retourne TRUE si la géométrie A croise la géométrie B
  • ST_Disjoint(geometry A , geometry B) retourne TRUE si les géométries ne s’intersectent pas
  • ST_Distance(geometry A, geometry B) retourne la distance minimum entre deux géométries
  • ST_DWithin(geometry A, geometry B, radius) retourne TRUE si la A est distante d’au plus radius de B
  • ST_Equals(geometry A, geometry B) retourne TRUE si A est la même géométrie que B
  • ST_Intersects(geometry A, geometry B) retourne TRUE si A intersecte B
  • 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.
  • ST_Touches(geometry A, geometry B) retourne TRUE si le contour extérieur de A touche B
  • ST_Within(geometry A, geometry B) retourne TRUE si A est hors de B

Souvenez-vous les tables à votre disposition :

  • nyc_census_blocks
    • name, popn_total, boroname, the_geom
  • nyc_streets
    • name, type, the_geom
  • nyc_subway_stations
    • name, the_geom
  • nyc_neighborhoods
    • name, boroname, the_geom

Exercices

  • “Quelle est la valeur géométrique de la rue nommée ‘Atlantic Commons’ ?”

    SELECT the_geom
      FROM nyc_streets
      WHERE name = 'Atlantic Commons';
    
    01050000202669000001000000010200000002000000093235673BE82141F319CD89A22E514170E30E0ADFE82141CB2D3EFFA52E5141
  • “Quels sont les quartiers et villes qui sont dans Atlantic Commons ?”

    SELECT name, boroname
    FROM nyc_neighborhoods
    WHERE ST_Intersects(
      the_geom,
      '01050000202669000001000000010200000002000000093235673BE82141F319CD89A22E514170E30E0ADFE82141CB2D3EFFA52E5141'
    );
    
        name    | boroname
    ------------+----------
     Fort Green | Brooklyn
  • “Quelles rues touchent Atlantic Commons ?”

    SELECT name
    FROM nyc_streets
    WHERE ST_Touches(
      the_geom,
      '01050000202669000001000000010200000002000000093235673BE82141F319CD89A22E514170E30E0ADFE82141CB2D3EFFA52E5141'
    );
    
         name
    ---------------
     S Oxford St
     Cumberland St
    _images/atlantic_commons.jpg
  • “Approximativement combien de personnes vivent dans (ou dans une zone de 50 mètres autour d’) Atlantic Commons ?”

    SELECT Sum(popn_total)
      FROM nyc_census_blocks
      WHERE ST_DWithin(
       the_geom,
       '01050000202669000001000000010200000002000000093235673BE82141F319CD89A22E514170E30E0ADFE82141CB2D3EFFA52E5141',
       50
       );
    
    1186
    

Table des matières

Sujet précédent

Partie 10 : Les relations spatiales

Sujet suivant

Partie 12 : Les jointures spatiales