2016-04-26 96 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))嗎?我查看了文檔和谷歌周圍,但我找不到任何東西。 –

+1

如果緩衝距離很小,那麼經度和緯度等於110公里的經驗法則可能就足夠了(這隻適用於赤道)。如果你需要準確的措施,你需要選擇最好的SRID。 D只能在Geoquerysets中使用。但我敢說這種方式可能會變得更容易! – e4c5

+0

謝謝!我無法在文檔中找到它;緩衝區在我的區域中通常具有不同的含義;-) –

相關問題