2016-04-26 13 views
2

私はgisポリゴンフィールドを使ってフィールドを持つモデルを得ま​​した。geodjangoでポリゴンを拡大または縮小するにはどうすればよいですか?

boundary = models.PolygonField() 

私は、ユーザーにオフセット/許容値を提供する必要があります。数学を自分でやることなく、このポリゴンを拡大または縮小するにはどうすればよいですか?

ありがとうございます!

答えて

3

私はあなたが探しているのはGeometry.bufferだと思います。あなたはそれを縮小したい場合は

from django.contrib.gis.geos import Polygon 

poly = Polygon.from_bbox((0, 0, 5, 5)) 
poly.extent # (0.0, 0.0, 5.0, 5.0) 
p2 = poly.buffer(1) 
p2.extent #(-1.0, -1.0, 6.0, 6.0) 

+0

をバッファリングするための呼び出しで負の値を使用して、私が探しています正確に何をされるように、ありがとうございました。あなたは私がバッファ上にユニットを設定する方法を知っていますか?このpoly.buffer(D(km = 2))の何かを行うことはできますか?私はドキュメントとGoogleの周りを見たが、私は何も見つけることができませんでした。 –

+1

バッファリングが小さい距離になる場合、1度の緯度と経度が110kmに等しいという経験則が十分に良いかもしれません(これは赤道でのみ当てはまります)。正確な措置が必要な場合は、適合SRIDを選択する必要があります。 Dの使用はGeoquerysetsでのみ可能です。しかし、私はあえてその方法がもっと簡単になるかもしれないと言うのは間違いない! – e4c5

+0

ありがとうございます!私はドキュメントでそれを見つけることができませんでした。バッファは通常、私のエリアでは異なる意味を持っています;-) –

関連する問題