Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Łączenia jeden do wielu
13-02-2012, 13:10,
#1
Łączenia jeden do wielu
Ktoś wie jak połączyć jeden obiekt przestrzenny z kilkoma z tabeli nieprzestrzennej tak, żeby nie obciąć danych nieprzestrzennych?

Przykładowe tabele:
Kod:
Dane przestrzenne              Dane nieprzestrzenne
|ID|OBIEKT        |            |ID|MIESZKANIEC|
-------------------            ----------------
|1 |Zamczysko     |            |1 |Gargamel   |
-------------------            ----------------
|2 |Dom na polanie|            |1 |Klakier    |
-------------------            ----------------
|3 |Gajówka       |            |2 |Czerw.Kapt.|
                               ----------------
                               |2 |Babcia     |  
                               ----------------
                               |3 |Gajowy     |
                               ----------------
                               |2 |Mysz leśna |  
                               ----------------
                               |1 |Mysz polna |

Typowy efekt złączenia:
Kod:
|ID|OBIEKT        |ID|MIESZKANIEC|
----------------------------------
|1 |Zamczysko     |1 |Gargamel   |
----------------------------------
|2 |Dom na polanie|2 |Czerw.Kapt.|
----------------------------------
|3 |Gajówka       |3 |Gajowy     |

Efekt oczekiwany
Kod:
|ID|OBIEKT        |ID|MIESZKANIEC|
----------------------------------
|1 |Zamczysko     |1 |Gargamel   |
----------------------------------
|1 |Zamczysko     |1 |Klakier    |
----------------------------------
|1 |Zamczysko     |1 |Mysz polna |
----------------------------------
|2 |Dom na polanie|2 |Mysz leśna |
----------------------------------
|2 |Dom na polanie|2 |Babcia     |
----------------------------------
|2 |Dom na polanie|2 |Czerw.Kapt.|
----------------------------------
|3 |Gajówka       |3 |Gajowy     |
----------------------------------
13-02-2012, 13:37,
#2
RE: Łączenia jeden do wielu
ja mam rozwiązanie nieco na około i sprawdzone na ArcGISie. w wolnej chwili przetestuje na Qgis i dam znać, bo teaz niestety zbyt mało czasu mam. moge na tą chwile podpowiedzieć, że w Arc do tego wykorzystuję "merge" a w qgis będzie to łączenie kilku warstw shp. jak sprawdze to dam przepis. myślę jednak, ze łątwiej byłoby z wykorzystaniem postgre/postgis
13-02-2012, 13:53,
#3
RE: Łączenia jeden do wielu
Złączenia chcesz dokonać w bazie czy w QGISie?
W bazie to chyba by join'em poszło...
13-02-2012, 13:57, (Ten post był ostatnio modyfikowany: 13-02-2012, 13:58 {2} przez tomalos.)
#4
RE: Łączenia jeden do wielu
W QGIS'ie, dane są w plikach shp i tabelach dbf.
13-02-2012, 14:10, (Ten post był ostatnio modyfikowany: 13-02-2012, 14:55 {2} przez Rayo.)
#5
RE: Łączenia jeden do wielu
Tabelaryczny wynik złączenie można uzyskać dokonując złączenia na tabeli nieprzestrzennej z tabelą przestrzenną (a nie odwrotnie).
Niestety takie złączenie nie wyświetla się na mapie, bo złączenie nie pobiera danych o geometrii.
Jeśli chcesz uzyskać dane z geometrią w postaci pliku, a nie tworzone online to możesz zrobić tak (zakładam, że obiekty są punktami):
1. Wczytujesz do QGISa tabelę dbf i warstwę shp, które mają być złączone.
2. Do warstwy shp dołączasz informacje o geometrii przez Wektor/Narzędzia geometrii/eksportuj-dodaj kolumny geometrii.
3. Wczytujesz powstałą warstwę do projektu, nazwijmy ją shp2.
4. Na tabeli dbf dokonujesz złączenia z warstwą shp2.
5. Tabelę dbf zapisujesz przez Zapisz jako w formacie CSV.
6. Powstały plik zaczytujesz do projektu przez Dodaj warstwę tekstową
7. I ostatecznie zapisujesz nową warstwę przez Zapisz jako do pliku shp.

Trochę na okrągło, ale działa.

UWAGA: Nazwy kolumn nie mogą się powtarzać w tabeli dbf i warstwie shp.
13-02-2012, 15:40,
#6
RE: Łączenia jeden do wielu
Dzięki Smile Miałem poligony ale wystarczające okazały się ich centroidy.
13-02-2012, 20:16, (Ten post był ostatnio modyfikowany: 14-02-2012, 09:17 {2} przez tomalos.)
#7
RE: Łączenia jeden do wielu
Poradziłem sobie też z poligonami postępując analogicznie jak napisał Rayo, różnica polega na eksporcie do warstwy csv, może komuś się przyda:
1. Wczytać warstwę shp i tabelę dbf
2. Zapisać shp jako csv z geometrią WKT (w polu "warstwa" w oknie eksportu należy wpisać GEOMETRY=AS_WKT)
3. Wczytać warstwę csv
4. Połączyć dbf z csv
5. Zapisać dbf jako csv (pole "warstwa" pozostawiając puste)


Podobne wątki
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Tworzenie wielu rekordów jednocześnie wojkol1 3 6 429 09-07-2019, 15:39
Ostatni post: xmaziax
Question Złączenie dwóch przylegających części poligonu w jeden Michau 2 9 155 03-06-2018, 13:01
Ostatni post: [wiki]
  Zlecę napisanie skryptu dla QGIS do automatycznej edycji wielu plików SHP Matteusz 3 16 083 30-06-2017, 22:24
Ostatni post: bociusek
  Zdalne wywołanie skryptu łaczenia warstw Sylar 0 5 596 12-01-2017, 15:10
Ostatni post: Sylar
  Stylizacja - automatyczny zapis stylów dla wielu warstw Michau 2 12 069 10-10-2016, 20:43
Ostatni post: Italiano
  połączyć wiele/kilka poligonów w jeden diunida 5 42 591 27-02-2013, 13:30
Ostatni post: borys
  Jeden obiekt z kilku odcinków. sebaq 6 26 817 20-02-2013, 16:58
Ostatni post: borys

Skocz do: