Próbuję przekonwertować plik shapefile do prostego formatu WKT (Well Know Text) w poniższym przykładzie (z http://en.wikipedia.org/wiki/Well-known_text ).
MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)),
((20 35, 45 20, 30 5, 10 10, 10 30, 20 35),
(30 20, 20 25, 20 15, 30 20)))
Wiem, że używam QGIS do zapisywania pliku kształtu jako CSV i mogę używać ogr2ogr do wykonywania dowolnej liczby konwersji. W rzeczywistości ogr2ogr -f CSV out.wkt source.shp -lco GEOMETRY=AS_WKT
zbliża mnie tak blisko, jak do tej pory, ale nie całkiem tam. Jakieś sugestie?
ps Jak zauważył Mapperz, ten wątek jest bardzo podobny do tego . Wątek ten, choć zapewniał podejście ogr2ogr, które zauważyłem powyżej, nie rozwiązał tego konkretnego wyzwania. Wyjście ogr2ogr, które otrzymuję, wygląda następująco (obciąłem linie). Najwyraźniej po prostu nie wymyśliłem, jak zmusić ogr2ogr do używania wieloboku.
WKT,AREA,PERIMETER,PINUPOND_,PINUPOND_I,CODE
"POLYGON ((-120.630531650950061 50.838562484449184, . . .
"POLYGON ((-123.206067372148397 51.038984074378327, . . .
Odpowiedzi:
Tekst dobrze znany nie jest przeznaczony do zapisywania warstw, takich jak pliki kształtów, które składają się z wielu obiektów. WKT określa sposób reprezentowania geometrii jednego obiektu. Ta geometria może być pojedyncza lub wieloczęściowa. Geometria wieloczęściowa oznacza, że geometria jednego obiektu składa się z wielu części. Na przykład wyspy hawajskie mogą być reprezentowane jako jeden obiekt, ale składa się z wielu geometrii.
Plik kształtu to zbiór tego rodzaju obiektów. Obiekty zwykle mają również pewne informacje o atrybutach, które są również częścią pliku kształtu.
Twoje podejście do ogr2ogr konwertuje te obiekty do formatu csv z geometrią WKT (i tekstowymi reprezentacjami atrybutów). Jeśli naprawdę chcesz połączyć wszystkie geometrie w jeden MULTIPOLYGON, musisz najpierw przekonwertować wszystkie obiekty na jedną multi-geometrię. Możesz to zrobić w QGIS. Wybierz z menu Wektor Narzędzia geometrii, a następnie Jednoczęściowe do Wieloczęściowe. Następnie możesz przekonwertować to na wkt za pomocą ogr2ogr.
Mam nadzieję, że to ma sens.
źródło
Napisałem wtyczkę QGIS, która natychmiast zapisuje aktywną warstwę do pliku .wkt.
Nazwa wtyczki to „WktExport”. Możesz go wyszukać w domyślnym panelu wtyczek QGIS.
BTW, link do strony wtyczki jest następujący:
https://plugins.qgis.org/plugins/wktexport/
Wtyczka „WktExport” dla QGIS tworzy folder o nazwie „WktExport”, w którym znajduje się oryginalny SHP, i wstawia do folderu plik .wkt zawierający elementy w formacie WKT ascii wszystkich obiektów SHP (ale także KML lub inny oryginalny plik format).
Nazwa pliku .wkt zawiera datę i godzinę zapisania, więc zapisując go wiele razy, będziesz mieć wiele wersji tego samego pliku.
Może to być przydatne do tworzenia animacji postępów pracy kartograficznej lub do dokumentowania bieżącego stanu pliku.
Proszę wysłać wiadomość na listę qgis-developer, szczególnie jeśli uznasz, że wktexport jest użyteczny.
źródło