W dzisiejszym artykule zajmiemy się dalszym rozwojem naszego projektu GISowego. Dziś zaprezentuję sposób na dodanie nowych obiektów o różnychwłaściwościowach do projektowanej geobazy. Nasza geobaza zacznie bardziej przypominać profesjonalny projekt.

Feature dataset
Ponieważ już wcześniej szczegółowo opisałem w jaki sposób tworzyć obiekty, teraz nie będziemy już skupiać się na detalach. W pierwszej kolejności tworzymy nowy pakiet w drzewie obiektów. Pakiet nazywamy “Wodociągi”. Następnie przenosimy pakiet z drzewka na schemat, a we jego ciach ustawiamy stereotyp na “FeatureDataset”. Efekt powinien być taki jak na załączonym niżej obrazku.

Z logicznego punktu widzeniaFeature dataset jest formą kontenera, w którym przechowywane obiekty stanowiące swego rodzaju całość. Osobne datasety utworzymy dla obiektów, które nie łączą się ze sobą ani bezpośrednio ani pośrednio. W naszym przypadku nowe obiekty jakimi są hydrant oraz odcinek wodociągu umieścimy w datasecie wodociągi, ponieważ wiemy, że w rzeczywistościsą one połączone. Teraz gdy spróbowalibyśmy dodatkowo zamodelować fragment sieci obiektów energetycznych, telekomunikacyjnych lub innych, to umieścilibyśmy je w osobynych datasetach. Jest jest jedna ważna rzecz, którą powinniśmy wiedzieć o datasetach. Umieszczając obiekty w konkretnym datasecie - skazujemy je ten sam układ odniesienia. Co za tym idzie trzeba pamiętać, że pozyskując obiekty z różnych źródeł (o różnych układach odniesienia), trzeba dokonać konwersji ich pozycji. Szerzej o samych układach odniesienia stosowanych w Polsce porozmawiamy przy okazji innego artykułu. Jest jeszcze jeden powód utworzenia dataseta. Otóż, tylko obiekty będące w obrębie dataseta można łączyć w sieć geometryczną (ale o niej opowiem w następnym artykule).

dataset

 W datasecie “Wodociągi” tworzymydwie noweklasy: Hydrant (HYDRANT) oraz Odcinek wodociągu (ODC_WOD). Klasa HYDRANT będzie obiektem punktowym i we właściwościachgeomerii będzi miała ustawioną stałą esriGeometryPoint natomiasc klasa ODC_WOD będzie obiektem linowym definiowanym przez stałą esriGeometryPolyline.  Jeśli poniższy zrzut ucięty (zależnie od rozdzielczości ekranu), można go objeżeć klikając link poniżej obrazka.


Pokaż cały obraz

Jak widać na zrzucie, każda z klas ma swój podtyp, który jest identyfikowany numerem. Proszę zwrócić uwagę, iż nowoutworzone klasy w przeciwieństwie do budynku, niedzidziczą poklasie Feature. Klasa Hydrant dziedziczy po SimpleJunction, a klasa odcinka po SimpleEdge. Takie działanie jest podyktowane tym, iż w przyszłości obiekty te będą połączone siecią geometryczną, do której budynek jako wielokąt nie może należeć. Klasy te znajdziemy bez problemu w eksploratorze klas.

Tabele paszportu
Kolejnym krokiem będzie utworzenie tabel, które będą zawierać paszporty obiektów. Każdy obiekt będzie składać się z tabeli obiektu zawierającej część graficzną oraz paszportu zawierającego dodatkowe dane opisowe. Z punktu widzenia bazy danych, obiektypołączmy poprzez kolumnę ID będącą kluczem głównym w każdej z tabel. Z punktu widzenia geobazy, klasa obiektu zostaniepołączona z klasą paszportu za pomocą relacji. Szerzejo relacjach opowiem w jednym z kolejnychartykułów. Teraz skupimy się jedynie na właściwym modelu klas.

Tabele tworzymy podobnie jak klasy obiektów. tabele mogą również posiadać podtypy i konieczne jest zamodelowanie podtypu, jeśli tablica ma stanowić źródło dodatkowych danycho obiektcie - paszport. Jedyną różnicą jest fakt, iż tabela dziedziczy po klasie Object.Dodatkowo, co widać na poniższym schemacie, każda tabela zyskuje w wyniku dziedziczenia po Objectpole OBJECTID. Jest to systemowe pole unikalne w obrębie tabeli. Nie zalecam jednak stosowania tego pola jako łącznika między innymi tabelami, gdyż w wyniku migracji danych, wartość tego pola może ulec zmianie.

Jak widać naponiższym zrzucie, zostały utworzone trzy tabele, odpowiedno dlakażdego z obiektówwraz z przykładowym polem opisującym ten obiekt (np. BUDYNEK_DANE.Wysokosc).

dane
Pokaż  cały obraz

Porządki
Ponieważ nasz projekt zaczał się rozrastać, konieczne jest właściwe pogrupowanie utworzonych klas oraz schematów, tak aby były one czytelne i łatwe do znalezienia i modufikacji. W tym celu utworzyliśmy osobny schemat dla obiektów graficznych o nazwie “obiekty” oraz schenat “tabele” na którym umieściliśmy schemat tabel. Na systemowym schemacie “Workspace” utworzyliśmy Feature Dataset “Wodociagi”. Na poniższym zrzucie widać przykładowe rozmieszczenie obiektów.

drzewo