Automatyczne odczytywanie atrybutów - Wersja do druku +- Forum QGIS (http://forum.quantum-gis.pl) +-- Dział: Desktop GIS (http://forum.quantum-gis.pl/forum-4.html) +--- Dział: QGIS (http://forum.quantum-gis.pl/forum-5.html) +--- Wątek: Automatyczne odczytywanie atrybutów (/thread-1153.html) |
Automatyczne odczytywanie atrybutów - lukaschels - 12-12-2014 Posłużę się przykładem aby opisać problem. Mam warstwę z gminami oraz druga z powiatami obie mają atrybuty teryt i nazwę. Utworzyłem kolejna warstwę przystanki (punktową) i teraz tworząc nowy punkt chciałbym aby nazwa powiatu i gminy była już przypisana w oknie określania atrybutów. Inaczej mówiąc aby Q gis pobrałem sobie dane z warstw które już są. Czy jest możliwe takie rozwiązanie czy jednak trzeba ręcznie wszystko wpisywać i znać każdy atrybut w punkcie RE: Automatyczne odczytywanie atrybutów - martel - 13-12-2014 Przy tworzeniu nowych obiektów to nie bardzo (co najwyżej można sobie utworzyć rozwijalne listy z nazwami gmin i powiatów aby nie wklepywać ręcznie), ale można aktualizować z automatu warstwę punktową o nazwy gmin i powiatów po narysowaniu. Zainstaluj wtyczkę "refFunctions", która dodaje nowe opcje do kalkulatora pól. Następnie otwórz kalkulator pól dla warstwy z przystankami, w kalkulatorze dodana została nowa grupa funkcji o nazwie "Reference", z niej wybierz "geomwithin", ta funkcja pozwala na pobranie atrybutów z warstwy docelowej przy spełnieniu warunku, że obiekt źródłowy zawiera się w docelowym. A więc chcąc punktom przypisać nazwę gminy, w której punkt się znajduje, składnia będzie wyglądać następująco: geomwithin('nazwa warstwy z gminami','nazwa pola zawierającego nazwy gmin') I analogicznie będzie dla powiatów. RE: Automatyczne odczytywanie atrybutów - sew - 19-12-2014 Bardzo przydatna wtyczka. Jak będzie wyglądało wyrażenie, w którym chciałbym pozyskać sumę pól wszystkich obiektów w 1 warstwie, zawartych w obiektach 2 warstwy? Moje wyrażenie geomcontains('nazwawarstwy','nazwa atrybutu') zwraca tylko wartość jednego obiektu, podczas gdy zależy mi na sumie wartości zawartych w poligonie warstwy 2. RE: Automatyczne odczytywanie atrybutów - martel - 19-12-2014 Dobrze rozumiem, że mając np. warstwę poligonową i punktową chciałbyś w tabeli atrybutów warstwy poligonowej uzyskać sumę wartości jakiegoś pola z obiektów punktowych zawierających się w danym poligonie? Jeżeli tak, to do tego masz inne narzędzie, w menu Wektor->Narzędzia zarządzania danymi i tam masz Połącz atrybuty poprzez lokalizację. Wybierasz warstwę poligonową do aktualizacji, warstwę punktową do złączenia, zaznaczasz, żeby pobrał podsumowanie przecinających się obiektów i dodatkowo wybierasz sobie czy chcesz sumę, średnią, medianę czy może wartości min i max. Wynikiem będzie nowa warstwa poligonowa na bazie istniejącej z dodanymi wybranymi statystykami z warstwy punktowej plus dodatkowa kolumna z liczbą punktów w poligonie. RE: Automatyczne odczytywanie atrybutów - sew - 19-12-2014 Dzięki za cenną wskazówkę martel. Chodziło mi o wyliczenie procenta zabudowy na działce więc generalnie Twój sposób zadziałał. Jedynie co nie do końca się zgadza to sytuacja w której budynek (poligon) znajduje się na powierzchniach dwóch działek (też poligony). Wtedy taki budynek jest liczony jednocześnie na dwóch działkach, zawyżając znacznie wartość % zabudowy. RE: Automatyczne odczytywanie atrybutów - martel - 20-12-2014 To sprawdź jeszcze wtyczkę MMQGIS, jest tam narzędzie Spatial Join w menu Combine, zasada działania tego narzędzia jest zbliżona do wyżej opisywanego, jednak przy łączeniu atrybutów po lokalizacji oferuje również Proportional Sum. RE: Automatyczne odczytywanie atrybutów - karol.stachura - 03-01-2015 (12-12-2014, 14:17)lukaschels napisał(a): Posłużę się przykładem aby opisać problem. Zobacz tutaj: http://geoinformatyka.com.pl/automatyczna-aktualizacja-warstwy-bazy-spatialite-w-qgis-na-podstawie-innej-warstwy/ RE: Automatyczne odczytywanie atrybutów - manio26 - 14-10-2024 Dzień dobry wszystkim. Na wstępie chciałem się przywitać i ponieważ jest to mój pierwszy post tutaj to proszę o wyrozumiałość. Potrzebuję właśnie takiego rozwiązania o jakim pisze @lukaschels. Nadmienię, iż próbowałem skorzystać z rozwiązania jakim jest utworzenie TRIGGER-a , ale coś mi nie wychodzi. Oczywiście bardzo dobrze problem można rozwiązać korzystając z wbudowanego algorytmu "Złącz atrybuty według lokalizacji" ale moje pytanie brzmi czy ta się coś takiego zrobić kalkulatorem pół? aby np. po wstawieniu punku uzupełni się samo pole gminy? RE: Automatyczne odczytywanie atrybutów - xmaziax - 14-10-2024 Możesz użyć funkcji overlay_within() jako domyślnej dla warstwy punktowej. Np dla pola nazwa w wawstwie punktowej ustaw domyślne: overlay_within('warstwa_poli', nazwa)[0] Gdzie: 'warstwa_poli' to nazwa tabeli poligonowej, z nią przecinasz nowo powstały punkt, musi być jako w "wąsach" - 'warstwa' nazwa - to nazwa atrybutu z warstwy poligonów, który kopiujesz, pamiętaj, że w obu warstwach musi być ten sam typ, żeby się dało skopiować [0] - ponieważ funkcja zwraca listę - [0] oznacza, że bieżesz z niej 1 element Szczegółowy opis funkcji znajdziesz w QGIS, bo to ma więcej możliwości. RE: Automatyczne odczytywanie atrybutów - manio26 - 14-10-2024 Super. Dziękuję bardzo za pomoc. Właśnie nie o to mi chodziło. |