Forum QGIS
QGIS 2.6 Usuwanie węzłów - BUG - 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: QGIS 2.6 Usuwanie węzłów - BUG (/thread-1140.html)



QGIS 2.6 Usuwanie węzłów - BUG - kamilwydra - 24-11-2014

Witam.

Znalazłem BUG w wersji QGIS 2.6. W przypadku edycji warstwy liniowej, jeżeli będziemy edytować węzły w linii, która składa się z 2 węzłów, jest możliwość usunięcia 1 i pozostaje na tej warstwie punkt.
Można taką geometrię zapisać do bazy danych. Następnie QGIS nie jest w stanie wyświetlić warstwy, w której znajduje się taki obiekt (nie wyświetla całego obszaru mapy, w którym ten obiekt się znajduje).

W wersji 2.0 nie ma możliwości usunąć 1 węzła z 2 węzłowego odcinka.

Pozdrawiam


RE: QGIS 2.6 Usuwanie węzłów - BUG - sebaq - 25-11-2014

Nie wiem jak na SHP ale w Postgresie nie mogę zapisać takiej linii - ERROR: LineString must have at least two points CONTEXT: function SQL "st_geomfromwkb" (przynajmniej w wersji 9.3 z PostGIS 2.1 się tak dzieje). Nie wiem jak we wcześniejszych wersjach Postgresa/Postgis ale dla pewności dodałbym CONSTRAINTa na tabeli gdzie trzymasz ustalony typ geometrii, np:
ALTER TABLE tabela_linii ADD CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'LINESTRING'::text OR the_geom IS NULL);


RE: QGIS 2.6 Usuwanie węzłów - BUG - kamilwydra - 26-11-2014

Rzeczywiście, przy definicji tabeli nie mam takiego zabezpieczenia.
Niestety chwilowo nie jestem w stanie go dodać, bo kilka rekordów je narusza.

Muszę poszukać te rekordy i coś z nimi zrobić.
Dzięki i pozdrawiam! :-)

Edit: Linie mamy w postaci "MULTILINESTRING", które umożliwia zapisanie geometrii tego typu z 1 punktem. Dodałem ograniczenie ilości punktów, aby taka sytuacja się nie powtórzyła.


RE: QGIS 2.6 Usuwanie węzłów - BUG - sebaq - 26-11-2014

Spoko.
Tylko nie pozwalaj żeby w jednej tabeli były różne typy geometrii (np. LINIE i MULTILINIE).
Rozbij multilinie na linie za pomocą (ST_Dump(the_geom)) .geom. Rozłoży to multilinie składająca się z np. 3 linii na 3 obiekty o tych samych atrybutach (również GIDach) ale w nowej tabeli będzie porządek!
Pozdrawiam!