Průvodce pro prostorové dotazy v systému PostGIS (plugin pro OpenJUMP) Vedoucí: Ing. Jan Růžička.Ph.D. Konzultant: Ing. Aleš Daněk Diplomová práce
Důvody řešení a cíle projektu Rychle a efektivně konstruovat SQL dotazyRychle a efektivně konstruovat SQL dotazy Zadavatelem je společnost CAD ProgramyZadavatelem je společnost CAD Programy Tvorba pluginu pro OpenJUMPTvorba pluginu pro OpenJUMP Používání funkcí PostGISPoužívání funkcí PostGIS Zasílání SQL dotazů systému PostGISZasílání SQL dotazů systému PostGIS Vizualizace výsledků v prostředí OpenJUMPVizualizace výsledků v prostředí OpenJUMP
Atributové dotazy Pracují s atributy dané vrstvyPracují s atributy dané vrstvy Mnoho GIS aplikací umožňuje provádět atributové dotazyMnoho GIS aplikací umožňuje provádět atributové dotazy Příklad: SELECT * FROM kraje WHERE nazev = MoravskoslezskyPříklad: SELECT * FROM kraje WHERE nazev = Moravskoslezsky
Prostorové dotazy Pracují s prostorovou složkou geoprvkuPracují s prostorovou složkou geoprvku V projektu OpenJUMP knihovna JTSV projektu OpenJUMP knihovna JTS
PostgreSQL, PostGIS Plnohodnotný relační databázový systémPlnohodnotný relační databázový systém Podpora všech rozšířených OSPodpora všech rozšířených OS Šířen pod BSD licencíŠířen pod BSD licencí (používání, modifikace, distribuce) PostGIS Umožňuje práci s prostorovými datyUmožňuje práci s prostorovými daty Obsahuje:Obsahuje: Nové datové typy (point, linestring, polygon…)Nové datové typy (point, linestring, polygon…) Nové funkce (Lenght, Simplify, Transform…)Nové funkce (Lenght, Simplify, Transform…)
OpenJUMP Vyvíjen již několik letVyvíjen již několik let Aplikace napsaná v jazyce JavaAplikace napsaná v jazyce Java Multiplatformní systém (Windows, Linux, Solaris…)Multiplatformní systém (Windows, Linux, Solaris…) Volně dostupný, open- sourceVolně dostupný, open- source Možnost rozšíření funkcionality (pluginy)Možnost rozšíření funkcionality (pluginy) Nástroje pro prostorové operace a analýzyNástroje pro prostorové operace a analýzy
Hledání vhodného nástroje pro zadávání SQL dotazů
Chyba se vyskytuje nezávisle na použitém OS i verzi systému PostGISChyba se vyskytuje nezávisle na použitém OS i verzi systému PostGIS
Hledání vhodného nástroje pro zadávání SQL dotazů Autor Larry Reeder ( )Autor Larry Reeder ( ) GNU GPL licenceGNU GPL licence Možnost připojení Oracle, PostGIS, MySQLMožnost připojení Oracle, PostGIS, MySQL
Testování funkcí systému PostGIS
Sestavení seznamu použitých funkcí systému PostGIS Systém postGIS obsahuje celkem 686 předdefinovaných funkcíSystém postGIS obsahuje celkem 686 předdefinovaných funkcí Oficiální dokumentace systému PostGIS rozděluje funkce do deseti kategoriíOficiální dokumentace systému PostGIS rozděluje funkce do deseti kategorií Pro tuto práci bylo použito celkem 37 funkcíPro tuto práci bylo použito celkem 37 funkcí Funkce byly rozděleny do šesti kategorií podle vstupních parametrů a typu návratové hodnotyFunkce byly rozděleny do šesti kategorií podle vstupních parametrů a typu návratové hodnoty oCentroid (geometry) return geometry oArea (geometry) return number oBuffer (geometry, number) return geometry oCrosses (geometry, geometry) return boolean oDistnce (geometry, geometry) return number oIntersection (geometry, geometry) return geometry
Návrh grafického uživatelského rozhraní průvodce Nápověda Ovládací prvky Textové pole pro SQL dotaz Výběr funkce
Návrh grafického uživatelského rozhraní průvodce
Návrh funkcionality a implementace průvodce Stažení zdrojových kódů pluginuStažení zdrojových kódů pluginu Import zdrojových kódů do vývojového prostředí (NetBeans, 6 balíků,14 tříd )Import zdrojových kódů do vývojového prostředí (NetBeans, 6 balíků,14 tříd ) Ošetření závislostí a úprava původního pluginuOšetření závislostí a úprava původního pluginu
Návrh funkcionality a implementace průvodce
Vybrání vstupních vrstevVybrání vstupních vrstev Zadání vstupního parametru (vzdálenost)Zadání vstupního parametru (vzdálenost) Použití tlačítka insert queryPoužití tlačítka insert query definice parametrů připojení k DBSdefinice parametrů připojení k DBS
Návrh funkcionality a implementace průvodce Vybrání funkceVybrání funkce Výběr vstupní vrstvy (vrstev)Výběr vstupní vrstvy (vrstev) Výběr atributů výsledné vrstvyVýběr atributů výsledné vrstvy Zadání vstupních parametrů pokud to funkce vyžadujeZadání vstupních parametrů pokud to funkce vyžaduje Použití tlačítka insert query nebo append & editPoužití tlačítka insert query nebo append & edit
Testování pluginu nad dostupnými daty
Děkuji za pozornost