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/geometries_exercises.rst @ 81

Revision 62, 7.2 KB checked in by thomasg, 13 years ago (diff)

Fin correction typo et orthographe V2 du document

Partie 9 : Exercices sur les géométries

System Message: WARNING/2 (<string>, line 4)

Title underline too short.

Partie 9 : Exercices sur les géométries
=======================================

Voici un petit rappel de toutes les fonction que nous avons abordé jusqu'à présent. Elles devraient être utiles pour les exercices !

Souvenez-vous aussi des tables disponibles:

  • 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 l'aire du quartier 'West Village'?"

    SELECT ST_Area(the_geom)
      FROM nyc_neighborhoods
      WHERE name = 'West Village';
    
    1044614.53027344
    

    Note

    L'aire est donnée en mÚtres carrés. Pour obtenir l'aire en hectare, divisez par 10000. Pour obtenir l'aire en acres, divisez par 4047.

  • "Quelle est l'aire de Manhattan en acres ?" (Astuce: nyc_census_blocks et nyc_neighborhoods ont toutes les deux le champ boroname.)

    SELECT Sum(ST_Area(the_geom)) / 4047
      FROM nyc_neighborhoods
      WHERE boroname = 'Manhattan';
    
    13965.3201224118
    

    or...

    SELECT Sum(ST_Area(the_geom)) / 4047
      FROM nyc_census_blocks
      WHERE boroname = 'Manhattan';
    
    14572.1575543757
    
  • "Combien de blocs de la ville de New York ont des trous ?"

    SELECT Count(*)
      FROM nyc_census_blocks
      WHERE ST_NRings(the_geom) > 1;
    
    66
    
  • "Quel est la longueur totale des rues (en kilomÚtres) dans la ville de New York ?" (Astuce: l'unité de mesure des données spatiales est le mÚtre, il y a 1000 mÚtres dans un kilomÚtre.)

    SELECT Sum(ST_Length(the_geom)) / 1000
      FROM nyc_streets;
    
    10418.9047172
    
  • "Quelle est la longueur de 'Columbus Cir' (Columbus Circle) ?"

    SELECT ST_Length(the_geom)
      FROM nyc_streets
      WHERE name = 'Columbus Cir';
    
    308.34199
    
  • "Quelle est le contour de 'West Village' au format JSON ?"

    SELECT ST_AsGeoJSON(the_geom)
      FROM nyc_neighborhoods
      WHERE name = 'West Village';
    
    {"type":"MultiPolygon","coordinates":
     [[[[583263.2776595836,4509242.6260239873],
        [583276.81990686338,4509378.825446927], ...
        [583263.2776595836,4509242.6260239873]]]]}
    

La géométrie de type "MultiPolygon", intéressant !

  • "Combien de polygones sont dans le multi-polygone 'West Village' ?"

    SELECT ST_NumGeometries(the_geom)
      FROM nyc_neighborhoods
      WHERE name = 'West Village';
    
    1
    

    Note

    Il n'est pas rare de trouver des éléments de type multi-polygone ne contenant qu'un seul polygone dans des tables. L'utilisation du type multi-polygone permet d'utiliser une seule table pour y stocker des géométries simples et multiples sans mélanger les types.

  • "Quel est la longueur des rues de la ville de New York, suivant leur type ?"

    SELECT type, Sum(ST_Length(the_geom)) AS length
     FROM nyc_streets
     GROUP BY type
     ORDER BY length DESC;
    
                           type                       |      length
    --------------------------------------------------+------------------
     residential                                      | 8629870.33786606
     motorway                                         | 403622.478126363
     tertiary                                         | 360394.879051303
     motorway_link                                    | 294261.419479668
     secondary                                        | 276264.303897926
     unclassified                                     | 166936.371604458
     primary                                          | 135034.233017947
     footway                                          | 71798.4878378096
     service                                          |  28337.635038596
     trunk                                            | 20353.5819826076
     cycleway                                         | 8863.75144825929
     pedestrian                                       | 4867.05032825026
     construction                                     | 4803.08162103562
     residential; motorway_link                       | 3661.57506293745
     trunk_link                                       | 3202.18981240201
     primary_link                                     | 2492.57457083536
     living_street                                    | 1894.63905457332
     primary; residential; motorway_link; residential | 1367.76576941335
     undefined                                        |  380.53861910346
     steps                                            | 282.745221342127
     motorway_link; residential                       |  215.07778911517
    

    Note

    La clause ORDER BY length DESC ordonne le résultat par la valeur des longueurs dans l'ordre décroissant. Le résultat avec la plus grande valeur se retrouve au début la liste de résultats.

Note: See TracBrowser for help on using the repository browser.