10. Övningar i geometri¶
Här är en påminnelse om alla de funktioner vi har sett hittills. De bör vara användbara för övningarna!
sum(uttryck) aggregat för att returnera en summa för en uppsättning poster
count(uttryck) aggregat för att returnera storleken på en uppsättning poster
ST_GeometryType(geometry) returnerar typen av geometri
ST_NDims(geometry) returnerar antalet dimensioner för geometrin
ST_SRID(geometry) returnerar geometrins identifieringsnummer för spatial referens
ST_X(point) returnerar X-ordinaten
ST_Y(point) returnerar Y-ordinaten
ST_Length(linestring) returnerar längden på linestring
ST_StartPoint(geometry) returnerar den första koordinaten som en punkt
ST_EndPoint(geometry) returnerar den sista koordinaten som en punkt
ST_NPoints(geometry) returnerar antalet koordinater i linjesträngen
ST_Area(geometry) returnerar polygonernas area
ST_NRings(geometry) returnerar antalet ringar (vanligtvis 1, fler om det finns hål)
ST_ExteriorRing(polygon) returnerar den yttre ringen som en linjestring
ST_InteriorRingN(polygon, integer) returnerar en angiven inre ring som en linjestring
ST_Perimeter(geometry) returnerar längden på alla ringar
ST_NumGeometries(multi/geomcollection) returnerar antalet delar i samlingen
ST_GeometryN(geometry, integer) returnerar den angivna delen av samlingen
ST_GeomFromText(text) returnerar
geometry
ST_AsText(geometry) returnerar WKT
text
ST_AsEWKT(geometry) returnerar EWKT
text
ST_GeomFromWKB(bytea) returnerar
geometry
ST_AsBinary(geometry) returnerar WKB
bytea
ST_AsEWKB(geometry) returnerar EWKB
bytea
ST_GeomFromGML(text) returnerar
geometry
ST_AsGML(geometry) returnerar GML
text
ST_GeomFromKML(text) returnerar
geometry
ST_AsKML(geometry) returnerar KML
text
ST_AsGeoJSON(geometry) returnerar JSON
text
ST_AsSVG(geometry) returnerar SVG
text
Tänk också på de tabeller vi har tillgängliga:
nyc_census_blocks
blkid, popn_total, boroname, geom
nyc_streets
name, type, geom
nyc_subway_stations
name, geom
nyc_neighborhoods
name, boroname, geom
10.1. Övningar¶
Vad är området för stadsdelen ”West Village”?
SELECT ST_Area(geom) FROM nyc_neighborhoods WHERE name = 'West Village';
1044614.5296486
Observera
Arean anges i kvadratmeter. För att få en yta i hektar, dividera med 10000. För att få en yta i hektar, dividera med 4047.
Vilken geometri har ”Pelham St”? Längden?
SELECT ST_GeometryType(geom), ST_Length(geom) FROM nyc_streets WHERE name = 'Pelham St';
ST_MultiLineString 50.323
Vad är GeoJSON-representationen av tunnelbanestationen ”Broad St”?
SELECT ST_AsGeoJSON(geom) FROM nyc_subway_stations WHERE name = 'Broad St';
{"type":"Point", "crs":{"type":"name","properties":{"name":"EPSG:26918"}}, "coordinates":[583571.905921312,4506714.341192182]}
Vad är den totala längden på gatorna (i kilometer) i New York City? (Tips: Måttenheterna för de spatiala uppgifterna är meter, det går 1000 meter på en kilometer)
SELECT Sum(ST_Length(geom)) / 1000 FROM nyc_streets;
10418.9047172
Vad är Manhattans yta i hektar? (Tips: både
nyc_census_blocks
ochnyc_neighborhoods
har ettboroname
i sig)SELECT Sum(ST_Area(geom)) / 4047 FROM nyc_neighborhoods WHERE boroname = 'Manhattan';
13965.3201224118
eller…
SELECT Sum(ST_Area(geom)) / 4047 FROM nyc_census_blocks WHERE boroname = 'Manhattan';
14601.3987215548
Vilken är den västligaste tunnelbanestationen?
SELECT ST_X(geom), name FROM nyc_subway_stations ORDER BY ST_X(geom) LIMIT 1;
Tottenville
Hur lång är Columbus Cir (även kallad Columbus Circle)?
SELECT ST_Length(geom) FROM nyc_streets WHERE name = 'Columbus Cir';
308.34199
Vad är längden på gatorna i New York City, sammanfattat per typ?
SELECT type, Sum(ST_Length(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
Observera
Klausulen
ORDER BY length DESC
sorterar resultatet efter längd i fallande ordning. Resultatet blir att de mest förekommande typerna står först i listan.