Changeset 62 for trunk/workshop-foss4g/geometries_exercises.rst
- Timestamp:
- 17/03/2012 00:49:40 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/workshop-foss4g/geometries_exercises.rst
r47 r62 2 2 3 3 Partie 9 : Exercices sur les géométries 4 ====================================== 4 ======================================= 5 5 6 6 Voici un petit rappel de toutes les fonction que nous avons abordé jusqu'à présent. Elles devraient être utiles pour les exercices ! … … 10 10 * :command:`ST_GeometryType(geometry)` retourne le type de la géométrie 11 11 * :command:`ST_NDims(geometry)` retourne le nombre de dimensions 12 * :command:`ST_SRID(geometry)` retourne l'identifiant du systÚme de référence s spatiales12 * :command:`ST_SRID(geometry)` retourne l'identifiant du systÚme de référence spatiale 13 13 * :command:`ST_X(point)` retourne la coordonnée X 14 14 * :command:`ST_Y(point)` retourne la coordonnée Y … … 19 19 * :command:`ST_Area(geometry)` retourne l'aire d'un polygone 20 20 * :command:`ST_NRings(geometry)` retourne le nombre de contours (1 ou plus si il y a des trous) 21 * :command:`ST_ExteriorRing(polygon)` retourne le contour ext erieur (ligne) d'un polygon21 * :command:`ST_ExteriorRing(polygon)` retourne le contour extérieur (ligne) d'un polygone 22 22 * :command:`ST_InteriorRingN(polygon, integer)` retourne le contour intérieur (ligne) d'un polygone 23 * :command:`ST_Perimeter(geometry)` retourne la longueur de tou tles contours23 * :command:`ST_Perimeter(geometry)` retourne la longueur de tous les contours 24 24 * :command:`ST_NumGeometries(multi/geomcollection)` retourne le nombre de composantes dans une collection 25 25 * :command:`ST_GeometryN(geometry, integer)` retourne la niÚme entité de la collection … … 39 39 Souvenez-vous aussi des tables disponibles: 40 40 41 * ``nyc_census_blocks`` 42 41 * ``nyc_census_blocks`` 42 43 43 * name, popn_total, boroname, the_geom 44 44 45 45 * ``nyc_streets`` 46 46 47 47 * name, type, the_geom 48 48 49 49 * ``nyc_subway_stations`` 50 50 51 51 * name, the_geom 52 52 53 53 * ``nyc_neighborhoods`` 54 54 55 55 * name, boroname, the_geom 56 56 … … 59 59 60 60 * **"Quelle est l'aire du quartier 'West Village'?"** 61 61 62 62 .. code-block:: sql 63 63 … … 65 65 FROM nyc_neighborhoods 66 66 WHERE name = 'West Village'; 67 68 :: 67 68 :: 69 69 70 70 1044614.53027344 … … 72 72 .. note:: 73 73 74 L'aire est donnée en m etres carrés. Pour obtenir l'aire en hectare, divisez par 10000. Pour obrenir l'aire en acres, divisez par 4047.75 76 * **"Quelle est l'aire de Manhattan en acres ?"** (Astuce: ``nyc_census_blocks`` et ``nyc_neighborhoods`` on toutes deux le champ ``boroname``.)77 74 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. 75 76 * **"Quelle est l'aire de Manhattan en acres ?"** (Astuce: ``nyc_census_blocks`` et ``nyc_neighborhoods`` ont toutes les deux le champ ``boroname``.) 77 78 78 .. code-block:: sql 79 79 … … 82 82 WHERE boroname = 'Manhattan'; 83 83 84 :: 85 84 :: 85 86 86 13965.3201224118 87 87 … … 94 94 WHERE boroname = 'Manhattan'; 95 95 96 :: 97 96 :: 97 98 98 14572.1575543757 99 99 100 100 101 101 * **"Combien de blocs de la ville de New York ont des trous ?"** 102 103 .. code-block:: sql 104 105 SELECT Count(*) 102 103 .. code-block:: sql 104 105 SELECT Count(*) 106 106 FROM nyc_census_blocks 107 107 WHERE ST_NRings(the_geom) > 1; 108 108 109 :: 110 111 66 112 109 :: 110 111 66 112 113 113 * **"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.) 114 115 114 115 .. code-block:: sql 116 116 117 117 SELECT Sum(ST_Length(the_geom)) / 1000 118 118 FROM nyc_streets; 119 119 120 :: 121 120 :: 121 122 122 10418.9047172 123 123 124 124 * **"Quelle est la longueur de 'Columbus Cir' (Columbus Circle) ?"** 125 126 127 128 129 130 131 132 ::133 134 125 126 .. code-block:: sql 127 128 SELECT ST_Length(the_geom) 129 FROM nyc_streets 130 WHERE name = 'Columbus Cir'; 131 132 :: 133 134 308.34199 135 135 136 136 * **"Quelle est le contour de 'West Village' au format JSON ?"** 137 137 138 138 .. code-block:: sql 139 139 … … 143 143 144 144 :: 145 145 146 146 {"type":"MultiPolygon","coordinates": 147 147 [[[[583263.2776595836,4509242.6260239873], … … 149 149 [583263.2776595836,4509242.6260239873]]]]} 150 150 151 La géométrie de type "MultiPolygon", int erressant !152 153 151 La géométrie de type "MultiPolygon", intéressant ! 152 153 154 154 * **"Combien de polygones sont dans le multi-polygone 'West Village' ?"** 155 155 156 156 .. code-block:: sql 157 157 … … 163 163 164 164 1 165 165 166 166 .. note:: 167 167 168 168 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. 169 170 169 170 171 171 * **"Quel est la longueur des rues de la ville de New York, suivant leur type ?"** 172 172 173 173 .. code-block:: sql 174 174 … … 179 179 180 180 :: 181 182 type | length 181 182 type | length 183 183 --------------------------------------------------+------------------ 184 184 residential | 8629870.33786606 … … 204 204 motorway_link; residential | 215.07778911517 205 205 206 206 207 207 .. note:: 208 208 209 209 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. 210 210 211 212 213 214
Note: See TracChangeset
for help on using the changeset viewer.