2013-03-20 75 views
1

是否可以將geodjango的查詢集的輸出存儲在空間啓用的數據庫中?
https://docs.djangoproject.com/en/dev/ref/contrib/gis/geoquerysets/#distance-lookups
這個例子中的一個顯示了所有的距離。是否有可能將其實際存儲在數據庫中,甚至可以使用geoqueryset.distance的值進行進一步計算?是否有可能在數據庫中存儲geodjango的geoqueryset.distance的輸出?

+0

是的,你可以用geodjango做這兩個。 – garnertb 2013-03-20 13:09:38

+0

哦,好吧。但我很不確定。因爲幾何圖形必須先保存?我對麼? – iamjoanel 2013-03-20 13:45:02

回答

1

是的,兩者都可以在geodjango中完成。

下面是你如何能不存儲任何幾何形狀進行距離計算的例子:

from django.contrib.gis.geos import Point 
pnt = Point(0,0) 
pnt.distance(Point(0,1)) 

這將返回1.0。 Django queryset API專門用於與數據交互,因此在查詢集變得有用之前需要一些持久數據。一旦你有數據,特別是地理空間數據,Django查詢集變得非常酷。

讓我們看看例如,從文檔:

Zipcode.objects.filter(poly__distance_gt=(geom, D(m=5))) 

這將返回所有郵政編碼的幾何圖形爲5米GEOM的範圍內的。 GeoDjango還會使用計算的距離對象爲查詢集中的每個項目添加一個距離字段。由於django只是python,所以你可以使用距離值進行任何你想要的瘋狂計算:

zips = Zipcode.objects.filter(poly__distance_gt=(geom, D(m=5))) 
for zip_code in zips: 
    print zip_code.name, zip_code.distance.m 
相關問題