9

Java の JTS ライブラリのエンベロープ クラスが非常に便利であることがわかりました。エンベロープはジオメトリの最小および最大座標を保持し、バウンディング ボックスと呼ばれることもあります。

いくつかの形の整った点の共通のエンベロープを取得したかったのです。JTSでは、 expandToIncludeを呼び出して、エンベロープをポイントごとに拡大できます。

JTS は GEOS / shapelyの設計図として機能していたので、同様の shapely を期待していましたが、見つかりませんでした (ライブラリは初めてです)。自分でそれを行うのはロケット科学ではないことはわかっていますが、これ以上エレガントな方法はないと思います。何か考えはありますか?

4

2 に答える 2

18

単純なボックス ジオメトリを作成するためboxに、長方形のポリゴンを返す関数があります。

from shapely.geometry import box
# box(minx, miny, maxx, maxy, ccw=True)
b = box(2, 30, 5, 33)
b.wkt  # POLYGON ((5 30, 5 33, 2 33, 2 30, 5 30))
b.area  # 9.0
于 2016-01-21T20:14:01.827 に答える
6

いいえ、(minx、miny、maxx、maxy) タプルに依存する Shapely にはエンベロープ クラスはありません。同じ JTS スタイルでプログラミングしたい場合、そのようなタプルをラップするエンベロープ クラスを作成するのは簡単です。

別のオプション:

from shapely.geometry import MultiPoint
print MultiPoint(points).bounds
于 2013-11-20T15:57:48.033 に答える