QGISでの作業時にcsvファイルの先行ゼロを維持する方法


8

私はQGISと地理情報システム一般に不慣れで、情報学の経験もありません。

私は正常に動作するシェープファイルを持っていて、CSV形式のファイルを持っていて、2つのファイル間で等しいはずの列を使用して、これら2つのファイルを結合しようとしています。問題は、一部の数値に先行ゼロが付いており(私の国ではある種の郵便番号です)、QGISにインポートするとCSVファイルから消えてしまいます...

先行ゼロを維持する簡単な方法はありますか?

シェープファイルでは、先頭のゼロは消えません。


郵便番号フィールドを文字列/テキストとして扱う必要があります。
Alexandre Neto

回答:


9

次のように、CSVTファイルを使用してタイプ値を指定できます。

"Integer(6)","Real(5.5)","String(22)"

csvファイルに名前が付けられているdata.csv場合は、csvtファイルに名前を付けますdata.csvt

Anita Graser(ここではunderdarkとして知られています)がこれに関連するブログ投稿を書いています。https://anitagraser.com/2011/03/07/how-to-specify-data-types-of-csv-columns-for-use-in-qgis/から入手できます

詳細については、このQ / Aも参照します。

編集:より正確には、列を「文字列」として指定して、先行ゼロを維持する必要があります。他のオプションは、電卓からlpad()関数を使用することです。次のQ / Aを参照してください。

例えば ​​: lpad('22', 4, 0), will return '0022'


誰がその例を発明したのだろうと思いますが、それは2200私のために戻ります。代わりに、gis.stackexchange.com
questions /

これを指摘してくれてありがとう...私が答えたときは遅かった;-)
simo

よくわかりませんが、CSVファイルで文字列値を二重引用符 "0082"で囲むだけで十分な場合があります。
user30184 2016

1
また、レイヤー->レイヤーの追加->ベクターレイヤーの追加方法を使用して、QGisで.csvファイルと.csvtファイルを同時にアップロードする必要があることを追加したかったのです。
Michael Workman 2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.