예제 #1
0
        int WczytajKlasoużytki(DokumentSwde swde)
        {
            var użytki = swde.GetObiektyKlasy("G5KLU");

            foreach (var klu in użytki)
            {
                string               g5ofu         = klu.GetAtrybut("G5OFU");
                string               g5ozu         = klu.GetAtrybut("G5OZU");
                string               g5ozk         = klu.GetAtrybut("G5OZK");
                string               g5pew         = klu.GetAtrybut("G5PEW");
                Powierzchnia         powierzchnia  = Powierzchnia.ParsujMetry(g5pew);
                Klasoużytek          klasouzytek   = new Klasoużytek(g5ofu, g5ozu, g5ozk, powierzchnia);
                var                  dze           = klu.GetRelacja("G5RDZE");
                string               g5idd         = dze.GetAtrybut("G5IDD");
                IdentyfikatorDziałki identyfikator = IdentyfikatorDziałki.ParsujIdG5(g5idd);
                var                  id            = identyfikator.ToString();
                if (_indeksDziałek.ContainsKey(id))
                {
                    _indeksDziałek[id].DodajUżytek(klasouzytek);
                }
                else
                {
                    Logger.ostrzeżenie("nie można dodać użytku " + klasouzytek.ToString() + " do działki " + id);
                }
            }
            return(użytki.Count());
        }
예제 #2
0
        int WczytajDziałki(DokumentSwde swde)
        {
            var działki = swde.GetObiektyKlasy("G5DZE");

            foreach (var dze in działki)
            {
                try
                {
                    var działka = dze.WczytajJednąDziałkę();
                    var id      = działka.Id.ToString();
                    _indeksDziałek.Add(id, działka);
                    //Przypisz jednostkę rejestrową do działki
                    var jdr   = dze.GetRelacja("G5RJDR");
                    var g5ijr = jdr.GetAtrybut("G5IJR");
                    var jr    = _indeksJednostek[JednostkaRejestrowa.ParseG5(g5ijr).ToString()];
                    działka.jr = jr;
                    //Przypisz kw z podstawy własności
                    działka.kw = dze.GetRelacjaLubNull("G5RPWŁ").WczytajSygnaturę();
                    //Jeżeli nadal brak kw to jeszcze zobaczymy w podstawie władania
                    if (string.IsNullOrEmpty(działka.kw))
                    {
                        działka.kw = dze.GetRelacjaLubNull("G5RPWD").WczytajSygnaturę();
                    }
                }
                catch (Exception ex)
                {
                    Logger.błąd("nie można wczytać działki " + dze.GetAtrybut("G5IDD") + ": " + ex.Message);
                }
            }
            return(działki.Count());
        }
예제 #3
0
        int WczytajWładających(DokumentSwde swde)
        {
            var wladajacy = swde.GetObiektyKlasy("G5UDW");

            foreach (var klu in wladajacy)
            {
                var    jdr             = klu.GetRelacja("G5RWŁD"); //Jednostka rejestrowa? (opcjonalna)
                string g5ijr           = jdr.GetAtrybut("G5IJR");
                JednostkaRejestrowa jr = _indeksJednostek[JednostkaRejestrowa.ParseG5(g5ijr).ToString()];
                var pod = klu.GetRelacja("G5RPOD"); //Podmiot
                switch (pod.Typ)
                {
                case "G5OSF":
                    jr.DodajWladajacego(pod.CreateOsobaFizyczna());
                    break;

                case "G5INS":
                    jr.DodajWladajacego(pod.CreateInstytucja());
                    break;

                case "G5MLZ":
                    jr.DodajWladajacego(pod.CreateMałżeństwo());
                    break;

                case "G5OSZ":
                    jr.DodajWladajacego(pod.CreatePodmiotGrupowy());
                    break;

                default: Kontrakt.fail(); break;
                }
            }
            return(wladajacy.Count());
        }
예제 #4
0
        public IEnumerable <DzialkaEwidencyjna> działki()
        {
            var powierzchnia = new Powierzchnia(1);

            foreach (var dze in _dokument.GetObiektyKlasy("G5DZE"))
            {
                var g5idd   = dze.GetAtrybut("G5IDD");
                var id      = IdentyfikatorDzialki.parseG5(g5idd);
                var działka = new DzialkaEwidencyjna(id, powierzchnia);
                //Nie dodawaj do działki punktów jeżeli choć jeden jest niegraniczny, aby wymusić status "nieznany" dla działki.
                if (dze.Geometria.countPunktyNiegraniczne() == 0)
                {
                    Kontrakt.assert(działka.countPunkty() == 0, "Do działki były już importowane punkty.");
                    ObiektSwde[] punktySwde = dze.Geometria.PunktyGraniczne;
                    foreach (var punktSwde in punktySwde)
                    {
                        string     g5zrd  = punktSwde.GetAtrybut("G5ZRD");
                        string     g5bpp  = punktSwde.GetAtrybut("G5BPP");
                        var        punkt  = new PunktGraniczny(g5zrd, g5bpp);
                        ObiektSwde operat = punktSwde.GetRelacja("G5RKRG");
                        string     g5syg  = operat.GetAtrybut("G5SYG");
                        punkt.operat(g5syg);
                        działka.dodajPunkt(punkt);
                    }
                }
                yield return(działka);
            }
        }
예제 #5
0
        private ObiektSwde obiektKlasy(string klasa)
        {
            IEnumerable <ObiektSwde> obiekty = _dokument.GetObiektyKlasy(klasa);

            Assert.AreEqual(1, obiekty.Count());
            ObiektSwde obiekt = obiekty.First();

            Assert.AreEqual(klasa, obiekt.Typ);
            return(obiekt);
        }
예제 #6
0
        public void test_zlicz_budynki()
        {
            int count = 0;

            foreach (var obiekt in _dokument.GetObiekty())
            {
                if (obiekt.Typ.Contains("BUD"))
                {
                    count++;
                }
            }
            Assert.AreEqual(1, count);
            IEnumerable <ObiektSwde> budynki = _dokument.GetObiektyKlasy("G5BUD");

            Assert.AreEqual(0, LoggerSwde.Bledy);
            Assert.AreEqual(1, budynki.Count());
        }
예제 #7
0
        int WczytajJednostkiRejestrowe(DokumentSwde swde)
        {
            var jednostkiRejestrowe = swde.GetObiektyKlasy("G5JDR");

            foreach (var jdr in jednostkiRejestrowe)
            {
                string g5ijr           = jdr.GetAtrybut("G5IJR");
                JednostkaRejestrowa jr = JednostkaRejestrowa.ParseG5(g5ijr);
                var    obr             = jdr.GetRelacja("G5ROBR");
                string obrTeryt        = obr.GetAtrybut("G5NRO");
                string obrNazwa        = obr.GetAtrybut("G5NAZ");
                jr.obrebEwidencyjny(obrTeryt, obrNazwa);
                var    jew      = obr.GetRelacja("G5RJEW");
                string jewTeryt = jew.GetAtrybut("G5IDJ");
                string jewNazwa = jew.GetAtrybut("G5NAZ");
                jr.jednostkaEwidencyjna(jewTeryt, jewNazwa);
                _indeksJednostek.Add(jr.ToString(), jr);
            }
            return(jednostkiRejestrowe.Count());
        }
예제 #8
0
        int readKontury(DokumentSwde swde)
        {
            List <IGeometry> geometrie = new List <IGeometry>();
            var kontury = swde.GetObiektyKlasy("G5KKL");

            foreach (var klu in kontury)
            {
                string       g5idk        = klu.GetAtrybut("G5IDK");
                string       g5ozu        = klu.GetAtrybut("G5OZU");
                string       g5ofu        = string.Empty;
                string       g5ozk        = klu.GetAtrybut("G5OZK");
                string       g5pew        = klu.GetAtrybut("G5PEW");
                Powierzchnia powierzchnia = Powierzchnia.parseMetry(g5pew);
                if (string.IsNullOrEmpty(g5ozk))
                {
                    //użytek
                    g5ofu = g5ozu;
                    g5ozu = string.Empty;
                }
                else
                {
                    //kontur klasyfikacyjny
                    g5ofu = g5ozu;
                    string[] split = g5ofu.Split(new char[] { '-' }, 3);
                    switch (split.Length)
                    {
                    case 2:
                        g5ofu = split[0];
                        g5ozu = split[1];
                        if (g5ofu.Equals("E"))     //nie dziel E
                        {
                            g5ofu = split[0] + '-' + split[1];
                            g5ozu = split[1];
                        }
                        break;

                    case 3:
                        g5ofu = split[0] + "-" + split[1];
                        g5ozu = split[2];
                        break;

                    default: break;
                    }
                }
                string oznString = string.Format("{4}\t{0}\t{1}\t{2}\t{3}", g5ofu, g5ozu, g5ozk, g5pew, g5idk);
                Logger.write(oznString);
                EGB_OFU ofu = new EGB_OFU(g5ofu);
                EGB_OZU?ozu = null;
                if (!string.IsNullOrEmpty(g5ozu))
                {
                    ozu = new EGB_OZU(g5ozu);
                }
                EGB_OZK?ozk = null;
                if (!string.IsNullOrEmpty(g5ozk))
                {
                    ozk = new EGB_OZK(g5ozk);
                }
                EGB_OznaczenieKlasouzytku ozn = new EGB_OznaczenieKlasouzytku(ofu, ozu, ozk);
                ozn.walidujOgraniczenia();
                //Console.WriteLine(g5idk);
                string           wkt       = klu.Geometria.NaWkt();
                GeometriaObiektu geometria = new GeometriaObiektu(wkt);
                try
                {
                    geometria.overlaps(geometrie);
                }
                catch (Exception ex)
                {
                    Logger.writeBłąd(ex.Message + ":" + wkt);
                }
                geometrie.Add(geometria.geometry());
            }
            return(kontury.Count());
        }