Łączenia jeden do wielu - 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: Łączenia jeden do wielu (/thread-662.html) |
Łączenia jeden do wielu - tomalos - 13-02-2012 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 Typowy efekt złączenia: Kod: |ID|OBIEKT |ID|MIESZKANIEC| Efekt oczekiwany Kod: |ID|OBIEKT |ID|MIESZKANIEC| RE: Łączenia jeden do wielu - shod_dc - 13-02-2012 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 RE: Łączenia jeden do wielu - Rayo - 13-02-2012 Złączenia chcesz dokonać w bazie czy w QGISie? W bazie to chyba by join'em poszło... RE: Łączenia jeden do wielu - tomalos - 13-02-2012 W QGIS'ie, dane są w plikach shp i tabelach dbf. RE: Łączenia jeden do wielu - Rayo - 13-02-2012 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. RE: Łączenia jeden do wielu - tomalos - 13-02-2012 Dzięki Miałem poligony ale wystarczające okazały się ich centroidy. RE: Łączenia jeden do wielu - tomalos - 13-02-2012 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) |