郡ポリゴンの境界ボックス座標を手動で(そして多少不正確に確信しています)取得しました。郡ポリゴンは、郡形状のより大きなレイヤーからの選択です。QGISプラグインまたは他の関数を使用して、これを手作業ではなく迅速に計算できるようにしたいと思います。これはほぼ確実に可能ですが、Google検索で何も見つかりませんでした
郡ポリゴンの境界ボックス座標を手動で(そして多少不正確に確信しています)取得しました。郡ポリゴンは、郡形状のより大きなレイヤーからの選択です。QGISプラグインまたは他の関数を使用して、これを手作業ではなく迅速に計算できるようにしたいと思います。これはほぼ確実に可能ですが、Google検索で何も見つかりませんでした
回答:
次の小さなPython関数は、現在アクティブな機能の境界ボックス座標を出力します。
def printBB():
feature = iface.activeLayer().selectedFeatures()[0]
print feature.geometry().boundingBox().toString()
関数を定義するには、[プラグイン]メニューからPythonコンソールを開き、3行をコピーしてコンソールに貼り付け、Enterキーを押します。次にprintBB()
、目的の機能が選択されているときにEnter キーを押して、関数を呼び出すことができます。
QGISは、レイヤーエクステントからポリゴンを介してそれを行うことができます
ベクトル-研究ツール-レイヤー範囲からのポリゴン
XMIN XMAX YMIN YMAX AREA WIDTH HEIGHTのような属性を持つ新しいシェープファイルを作成します
Use only selected obects
しcalculate for every object
て、目的の結果を取得する必要があります。
PythonのPyShpプラグインを使用してこれを行うこともできます。
import shapefile
sf = shapefile.Reader("Path to shapefile...")
shapes = sf.shapes()
bbox = shapes[0].bbox # Retrieves the bounding box of the first shape
print bbox # Will print the bounding box coordinates
PyShpおよびその他の機能の詳細については、こちらをご覧ください。
他の場所でリストとしてインポートできるフィールドを生成するには、これを行う必要がありました。
[フィールド式]に次のように入力します。
bb = $geom.boundingBox().toString()
bb = bb.replace(' ','')
bb = bb.replace(':',',')
value = bb
走る
簡単にアクセスできるようにするためのオプションは、bbox座標を属性テーブルに保持することです。
LEFT座標を持つ属性テーブルの新しいフィールドを取得します。
式を使用して、RIGHT、BOTTOM、TOPに対してこれを繰り返します。
次に、機能が変更されたときにこれらのフィールドを自動的に更新するようにAutoFieldsプラグインを設定できます。
File "<input>", line 4 printBB() ^ SyntaxError: invalid syntax