Published by Bolesław Maliszewski on 15 czerwca 2008 at 08:07 po południu
Projektowanie geobazy ESRI ArcGIS cz. 3 - więcej obiektów
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).

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


