QGISでのトポロジ編集について

1,117 views
Skip to first unread message

うじじす

unread,
Sep 26, 2017, 6:21:18 PM9/26/17
to QGIS初心者質問グループ
みなさん、こんにちは。うじじすと申します。
喜多 耕一さんの「業務で使う林業QGIS 徹底使いこなしガイド」という本のP294にトポロジ編集の仕方が載っています。shpファイルはトポロジ構造を持てないと思うのですが、トポロジ編集ができるのでしょうか?
もしくはトポロジ構造の持てる別ファイル形式にして編集することができるということなのでしょうか?geojsonファイルとかはトポロジ構造をもてるとweb上にありましたが、みなさんはQGISでトポロジ構造を持ちたいときはどのようなファイル形式を利用しておられますか?

AAEE

unread,
Sep 26, 2017, 8:21:21 PM9/26/17
to QGIS初心者質問グループ
シェープファイル自体にトポロジ構造は保持されていませんが、地物同士の関係性(地物のノード・エッジが他の地物と共有されているかどうか等)をQGIS側で計算しているのだと思います。
そのため、シェープファイル自体にトポロジ構造がなくてもトポロジ編集は可能です。

うじじす

unread,
Sep 27, 2017, 5:41:58 PM9/27/17
to QGIS初心者質問グループ
ありがとうございます。なるほど、シェープファイルで、なんちゃってトポロジ編集ができるということですね!
未だにシェープファイルを使っているので、この機能って、とても便利かも!

うじじす

unread,
Oct 3, 2017, 1:20:37 AM10/3/17
to QGIS初心者質問グループ
ということで、QGISトボロジ編集を始めてみたのですが、
QGISトボロジ編集の前にトボロジチェッカーでオーバーラップとギャップエラーを検証してみると、いっぱいエラーが出てしまいました。
各ノードの座標値を検証してみると、
もともとArcGISでシェープファイルを作成したときには、ArcGISでは座標値の小数点は第3位までの取り扱いなので、小数点第3位までの両側のノード座標値が合っていたのですが、
QGISでは座標値の小数点は第9位までの取り扱いとなるので、QGISで同じシェープファイルを開いてみると小数点第4位以下の値で両側のノード座標値が異なっており、
エラーとなっているようです。。
QGISでも座標値の小数点を第3位までの取り扱いにして、エラーとならないようにして、
トポロジ編集したいのですが、なにか良い方法はありませんでしょうか?

福岡

unread,
Oct 3, 2017, 2:12:33 AM10/3/17
to QGIS初心者質問グループ
こんにちは

以前、メッシュのポリゴン間が微妙に空いていて融合できないという投稿がありました。

メッシュを統合し1つの図形にしたい

このときにひねり出して投稿したのが、ShapeファイルをGeoJSONで保存(レイヤオプションの「COORDINATE_PRECISION」の設定で精度を落とします)して、
その後、Shapeで保存し直すという方法でした。
もしかしたら、今回の問題でも使える方法かもしれません。

うじじす

unread,
Oct 4, 2017, 12:36:00 AM10/4/17
to QGIS初心者質問グループ
ありがとうございます。


ShapeファイルをGeoJSONで保存(レイヤオプションの「COORDINATE_PRECISION」の設定で精度を落とします)して、
その後、Shapeで保存し直すという方法で
大幅にトボロジエラーを軽減させることができました!!

「COORDINATE_PRECISION」の設定値は5くらいがいいのですかね?
ヒントが表示されますが、
数値区切り以降に書き込みできる数字の最大数
って、小数点以下桁数のことですかね?
もともと、ARCGISで小数点以下3桁で運用していたのなら、
「COORDINATE_PRECISION」の設定値は3がいいのかなー?


福岡

unread,
Oct 4, 2017, 4:32:28 AM10/4/17
to QGIS初心者質問グループ
うじじす 様

うまくいったようで良かったです。
「COORDINATE_PRECISION」の設定値についてですが、漠然と小数点以下の桁数と思っていました。
そこで良い機会と思い、CSVで小数点以下9桁の座標を作成したものをQGISで読み込み、「COORDINATE_PRECISION」の設定値を「5」にしてGeoJSONで保存してみました。

テキストエディタで開いたところ、「"geometry": { "type": "Point", "coordinates": [ 0.12346, 0.12346 ] }」となっていました。
csvではx,yともに「0.123456789」としていたので、やはり小数点以下の桁数を設定する数値だと思います。

ご参考になれば幸いです。
Reply all
Reply to author
Forward
0 new messages