Forum QGIS
Jeden obiekt z kilku odcinkó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: Jeden obiekt z kilku odcinków. (/thread-889.html)



Jeden obiekt z kilku odcinków. - sebaq - 19-02-2013

Witam.
Chciałbym spytać czy znacie sposób na połączenie obiektu liniowego, składającego się z kilku odcinków, tak aby powstał jeden obiekt, połączony ze sobą "przerwanymi" wierzchołkami? Dostałem dość sporo tego typu wektorów i chciałbym je uporządkować. Jest to eksport z innego systemu, który zapisując do SHP robi takie rzeczy z jednego obiektu...
W załączniku przedstawiam kilka odcinków, które są jednym obiektem (zaznaczone narzędziem selekcji).
Dzięki i pozdrawiam.
PS. Dodam, ze obiekty mogą być zarówno w shp bądź w PostGIS.


RE: Jeden obiekt z kilku odcinków. - sebaq - 20-02-2013

Wciąż nie mogę tego rozgryźć :/ Czy ktoś wie co to w ogóle za typ obiektu. Nasuwa mi się skojarzenie z celkami czy blokami w Bentleyu i AutoCadzie. Jeżeli to coś na ten wzór, to ciężko to widzę. Chyba, że jakaś funkcja PostGISa, która potrafiłaby coś z tym zrobić...
Pozdrawiam.


RE: Jeden obiekt z kilku odcinków. - Rayo - 20-02-2013

Nie jestem pewien, czy dobrze zrozumiałem problem, ale może pomoże narzędzie 'Połącz zaznaczone obiekty' z paska narzędziowego 'Zaawansowana digitalizacja'.


RE: Jeden obiekt z kilku odcinków. - sebaq - 20-02-2013

No właśnie to jest jeden obiekt zawierający wiele linii, a wspomniane narzędzie wymaga zaznaczenie co najmniej 2 obiektów. Chodzi o coś dokładnie odwrotnego. Z połączonych linii w jeden obiekt, zrobić osobne tak aby były złączone "rozdzielonymi" wierzchołkami... masło maślane Wink Być może się nie da ... tak jak powiedziałem dane to otrzymałem jako eksport z zewnątrz i zdziwił mnie brak ciągłości linii w jednym obiekcie...
Próbuje z PostGISem (ST_LineMerge) i GRASSem (v.clean.snap) ale końcowy efekt nie zawsze jest zgodny z oczekiwaniami.
Dzięki i pozdrawiam...


RE: Jeden obiekt z kilku odcinków. - Rayo - 20-02-2013

Menu Wektor/Narzędzia geometrii/Rozbij obiekt wieloczęściowy na jednoczęściowe

Ale to nie załatwi połączenia tych "maślanych" wierzchołków Smile


RE: Jeden obiekt z kilku odcinków. - sebaq - 20-02-2013

No właśnie... Smile
Dzięki!


RE: Jeden obiekt z kilku odcinków. - borys - 20-02-2013

Do takich celów jest konsola Pajtona. Jeśli wierzchołki są kolejno, to powinno to być kilka linijek skryptu: iteracja po kolejnych wierzchołkach i (o ile nie jest zdublowany) składanie nowego multipoligonu. W QGISie 1.9.90 to by wyglądało tak (trzeba pamiętać o włączeniu trybu edycji najpierw). W starszych jest niestety nieco inny sposób dostępu do obiektu. Niech no ktoś tam przerobi, bo już nie pamiętam jak to się robiło, a nie mam nic pod ręką, żeby przetestować.

Kod:
f = iface.activeLayer().dataProvider.getFeatures().next()
pl = []
for line in f.geometry().asMultiPolyline():
  for vertex in line:
    if not len(pl) or vertex != pl[len(pl)-1]:
        pl += [vertex]
f.setGeometry(QgsGeometry.fromMultiPolyline([ln]))
iface.activeLayer().updateFeature(f)

Jeśli wierzchołki nie są kolejno, to trzeba kombinować z wyszukaniem najbliższego, albo wspomaganiem przez operatora. Może ktoś z naszych Pytonowców zechciałby taką wtykę machnąć?