Jak przekonwertować plik shapefile do WKT?

12

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_WKTzbliż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, . . .
Gregory
źródło
Jaki jest problem z wyjściem ogr2ogr?
til_b
@ til_b: adresowany w edycji.
Gregory
1
Czy Twój kształt to MULTIPOLYGON?
Jürgen Zornig,
@ JürgenZornig: Jak mogę to stwierdzić? Byłoby rozsądne, aby był to wielobok, ale chciałbym to sprawdzić.
Gregory

Odpowiedzi:

10

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.

LauriK
źródło
To ma sens i wkrótce będę mógł spróbować.
Gregory
Okej, w QGIS użyłem Vector / Geometry Tools / Single parts to multipart. Zapisałem dane wyjściowe jako nowy plik kształtów, ale kiedy załadowałem ten plik do QGIS, wydaje się on pusty, a tabela atrybutów jest całkowicie pusta (być może lepszym opisem byłby void, ponieważ nie ma też nagłówków).
Gregory
Czy @pyrogerg wybrałeś jakieś unikalne pole, gdy narzędzie tego zażądało? Oznacza to, że narzędzie „grupuje” wszystkie funkcje o tej samej wartości w tym polu. Jeśli nie masz żadnego unikalnego pola, możesz je utworzyć za pomocą kalkulatora pola. Możesz uzyskać do niego dostęp z tabeli atrybutów. Upewnij się, że warstwa jest w trybie edycji (ikona pióra). Następnie wybierz Kalkulator pola i „oblicz”, na przykład wartość 1, do każdego wiersza nowego pola.
LauriK,
1
+1 Pozwoliłem sobie na dalsze wyjaśnienie twojej edycji, wyraźnie wspominając, że dane wyjściowe będą zawierać atrybuty.
whuber
5

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.

Geo DrinX
źródło
Link do projektu jest uszkodzony.
Luke Hutchison