2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

”id”列に重複データがあるGeoJSONだとQGISは混乱する

2
Last updated at Posted at 2025-12-06

⚠️26/6/22追記 この現象は最新版ではFIXされています

たまたま見つけたQGISに関する小ネタですが、タイトルの通りです

現象

QGIS 3.40.5-Bratislava on MacOSで確認
こんなイメージの属性でランダムに作成した位置の1000ポイント、なおかつ"id"列に重複データのあるGeoJSONデータがあったとする

id name
0 pt_0001
0 pt_0002
1 pt_0003
1 pt_0004
2 pt_0005
2 pt_0006

GeoJSON.ioだと1000個テーブルで表示される
image.png

しかしQGISでは地図上に表示され、属性テーブルでは左下で「すべての地物を表示」となっていても勝手にフィルタがかかってしまい、最後のセットのみ表示される。

image.png

マップキャンパスですべてのフィーチャーを選択しても属性テーブルでは100レコードしか選択されない
image.png

原因・対応

QGISではGeoJSON の "id" を文字列でしか扱えず数値 ID を無視する不具合が報告されている。

つまり、QGISはGeoJSONの"id"をFeatureIDとして扱う仕様になっており、"id" が数値の場合は、その値を内部のFeatureIDとして強制的に利用しようとする。
その結果、今回のようなデータを読み込むと「FeatureID はレイヤ内で一意でなければならない!」 という仕様と衝突し、後から読み込まれた要素が前の要素を上書きしたような扱いになります(なので最後の100レコードのみ表示されてしまう)。その影響で属性テーブルの行数が減り、まるでフィルタがかかったように見える、という現象が起きている。なお、この不具合のFIXはされていない()

なので、(そうそうある話ではないが)このような”id”列に重複するデータが入ったGeoJSONは作らないほうが得策のようである。君子、危うきに近寄らず。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?