Přeskočit obsah

7.2 Úvod do prostorového SQL - geometrie

Úlohy

1. Vypište souřadnice letišť.
Nové Město POINT(-618953.172749 -1027812.100113)
2. Vypište nejjižněji položené mezinárodní letiště v ČR.
Kunovice
3. Seřaďte sestupně kraje podle jejich výměry.
Středočeský kraj 10928.354039717426
4. Najděte kraje, které obklopují kompletně jiný kraj.
Středočeský kraj
5. Vypište souřadnice reprezentačních bodů jednotlivých krajů.
Hlavní město Praha POINT(-739951.993507 -1045726.528215)
6. Spočítejte délku dálnic v km.
776
7. Spočítejte délku silnic podle jejich kategorie.
2 462.0
8. Určete souřadnicový systém datové vrstvy letisť.
5514
9. Jaký kraj má nejdelší hranici?
Středočeský kraj, 1133
10. Jaká je délka dálnice D8 (rok 2015) v km a z kolika lomových bodů se skládá?
82, 130
11. Transformujte letiště do souřadnicové systému WGS-84. Vypište letiště, které se nachází v zeměpisné délce mezi 14:30 a 15:30. Porovnejte rychlost vykonání dotazu virtuální vrstvy ve formátu Esri FileGDB a vrstvy uložené v souborové geodatabázi Spatialite.
Hodkovice POINT(15.074613 50.65438)

Řešení

1. Vypište souřadnice letišť.
Nové Město POINT(-618953.172749 -1027812.100113)
SELECT nazev, st_astext(geometry)
FROM   letiste;
SELECT nazev, st_x(geometry) as x, st_y(geometry) as y
FROM letiste;
2. Vypište nejjižněji položené mezinárodní letiště v ČR.
Kunovice
SELECT   nazev
FROM     letiste
WHERE    statut = 1
ORDER BY st_y(geometry) asc
LIMIT 1;
3. Seřaďte sestupně kraje podle jejich výměry.
Středočeský kraj 10928.354039717426
SELECT naz_cznuts3,st_area(geometry)/1e6 as vymera
FROM krajepolygony
ORDER BY vymera DESC;
4. Najděte kraje, které obklopují kompletně jiný kraj.
Středočeský kraj
SELECT naz_cznuts3
FROM krajepolygony
WHERE st_nrings(geometry) > 1;
5. Vypište souřadnice reprezentačních bodů jednotlivých krajů.
Hlavní město Praha POINT(-739951.993507 -1045726.528215)
SELECT naz_cznuts3,st_astext(st_centroid(geometry))
FROM krajepolygony
ORDER BY naz_cznuts3;
6. Spočítejte délku dálnic v km.
776
SELECT round(sum(st_length(geometry)) / 1e3)
FROM silnice_2015
WHERE trida == 1;
7. Spočítejte délku silnic podle jejich kategorie.
2 462.0
SELECT trida, round(sum(st_length(geometry))/1e3) as delka_km
FROM silnice_2015
GROUP BY trida
ORDER BY delka_km;
8. Určete souřadnicový systém datové vrstvy letisť.
5514
SELECT distinct st_srid(geometry)
FROM letiste;
9. Jaký kraj má nejdelší hranici?
Středočeský kraj, 1133
SELECT naz_cznuts3, round(st_length(st_boundary(geometry)) / 1000) AS delka_hranice
FROM krajepolygony
ORDER BY delka_hranice DESC
LIMIT 1;
10. Jaká je délka dálnice D8 (rok 2015) v km a z kolika lomových bodů se skládá?
82, 130
SELECT round(sum(st_length(geometry)) / 1000), sum(st_numpoints(geometry))
FROM silnice_2015 WHERE cislo_silnice = 'D8';
11. Transformujte letiště do souřadnicové systému WGS-84. Vypište letiště, které se nachází v zeměpisné délce mezi 14:30 a 15:30. Porovnejte rychlost vykonání dotazu virtuální vrstvy ve formátu Esri FileGDB a vrstvy uložené v souborové geodatabázi Spatialite.
Hodkovice POINT(15.074613 50.65438)
SELECT nazev, st_astext(geometry_wgs84)
FROM (
 SELECT nazev, st_transform(geometry, 4326) as geometry_wgs84
 FROM letiste
 WHERE st_x(geometry_wgs84) > 14.5 AND st_x(geometry_wgs84) < 15.5
);