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
);