Membuat CSV dengan geometri sebagai WKT di QGIS (dengan memilih pembatas bidang)


13

Apakah ada cara untuk memilih pembatas lapangan saat mengekspor CSV dengan geometri sebagai wkt di QGIS?

Saya memiliki shapefile dengan lubang donat dan saya ingin mengekspornya sebagai CSV. Ini untuk mitra yang DB-nya tidak mendukung data spasial.

Saya mengikuti metodologi Greg Krakow untuk menambahkan bidang WKT ke file yang diekspor (ketika mengekspor ke csv, tambahkan GEOMETRY=AS_WKTbidang "Lapisan", tetapi pembatas bidang yang diekspor adalah koma: CSV dengan bidang WKT

Masalahnya adalah bahwa setiap pasangan koordinat poligon saya (dan saya menduga itu akan sama untuk garis) dipisahkan oleh koma juga sehingga saya tidak dapat mengimpor data kembali ke QGIS

Dengan point shapefile, itu berfungsi seperti pesona.

Adakah yang tahu kalau saya bisa memilih bidang saya dibatasi ketika mengekspor ke CSV? Pilih titik koma misalnya?

Saya mencari di web dan dokumentasi QGIS tetapi tidak menemukan apa pun.


2
Sudahkah Anda memeriksa halaman bantuan: gdal.org/ogr/drv_csv.html . Ini menjelaskan cara mengubah pemisah.
underdark

Saya mencari QGIS secara khusus ... tidak berpikir untuk mencari bantuan GDAL. Terima kasih!!
fgcartographix

Jawaban:


17

Saya dapat mengekspor ke CSV, menggunakan selain koma, dengan memisahkan opsi pembuatan lapisan dalam dialog Simpan Sebagai .. dengan linebreak.

Tidak ada koma, atau ruang-memisahkan mereka (bahkan ketika mereka berada di tanda kutip) bekerja, tetapi linebreak melakukan trik. Untuk menekankan ..

PENDEKATAN INI BEKERJA (dipisahkan linebreak):

GEOMETRY=AS_WKT
SEPARATOR=SEMICOLON
LINEFORMAT=CRLF

Tetapi pendekatan ini TIDAK berhasil ...

(opsi yang dipisahkan ruang):

GEOMETRY=AS_WKT SEPARATOR=SEMICOLON

(opsi yang dipisahkan koma):

GEOMETRY=AS_WKT, SEPARATOR=SEMICOLON

(dikutip, dan juga spasi atau LCO yang dipisahkan koma):

"GEOMETRY=AS_WKT", "SEPARATOR=SEMICOLON"

Seperti yang dicatat oleh @underdark, ada beberapa opsi tambahan yang dibahas pada halaman driver OGR CSV yang mungkin ingin Anda ketahui. Secara khusus, SEPARATORparameter akan menerima SEMICOLONatau TABsebagai tambahan COMMA. Juga, Anda mungkin ingin bereksperimen dengan LINEFORMATparameter, yang mendukung CRLF(dos / windows) atau LF(unix).

Sebuah gambar mengatakan seribu kata, jadi ini adalah layar ambil. :)

masukkan deskripsi gambar di sini


Terima kasih! Bekerja. Saya tidak tahu mengapa, tetapi ketika saya mencoba untuk mengimpor csv saya ke QGIS, ia mengatakan bahwa itu bukan lapisan yang valid dan dapat ditambahkan ke peta ...? Saya mencoba dengan poligon sederhana (linestring dan poligon) dan tidak berhasil juga :( Jadi saya kira itu pertanyaan lain sekarang ...;)
fgcartographix

...menarik. Saya tidak yakin bagaimana menjelaskannya. Saya mencoba menambahkan yang saya buat ke peta dan berhasil. Kemudian saya mencoba menambahkan yang baru, karena ia membuatnya (yaitu melalui opsi "Tambahkan file yang disimpan ke peta"), dan itu juga berfungsi. QGIS versi apa? 1,8?
elrobis

1.8.0-Lisboa. Ini berfungsi ketika saya menggunakan "Tambahkan file yang disimpan ke peta", bukan ketika saya menggunakan tombol "Tambahkan lapisan teks dibatasi". Pembatas titik koma adalah memeriksa serta bidang saya "WKT" yang dipilih untuk geometri ... Itu bekerja dengan lapisan titik sebelumnya ...
fgcartographix

1
Ahh .. coba melalui "Add Vector Layer .." tombol (seperti Anda akan menambahkan shapefile), lalu browse ke folder dengan Anda .csv. Di bagian bawah dialog "Open OGR Supported Vector Layer", set "Files of type:" ke Comma Separated Value [OGR]. Maka Anda .csvakan muncul, dan saya yakin itu akan berhasil.
elrobis

Anda bertaruh benar! Ini bekerja dengan "Tambahkan lapisan teks dibatasi" setelah saya membuka csv saya di Excel dan me-resize juga ... Strange, tetapi jika itu bekerja dengan tombol "Add Vector Layer", saya setuju dengan itu. Perilaku yang aneh ...
fgcartographix

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.