2013-06-26 195 views
1

我是POSTGIS和GeoDjango的新手。我有一個查詢在POSTGIS中工作,但是,我很難將其轉換爲GeoDjango查詢。將POSTGIS查詢轉換爲GeoDjango查詢時遇到的問題

我的表world_node包含兩列:node - 整數,mpoint - 幾何點

POSTGIS SQL查詢(工作):

SELECT * FROM world_node 
WHERE ST_CONTAINS(ST_GeomFromText('POLYGON((-100 0, 0 150, 150 0, 0 -100, -100 0))', 4326), mpoint); 

我想獲得其所包含的所有點指定的多邊形,它工作正常。

請幫助我使用GeoDjango語法。這是我到目前爲止的代碼:

poly = GEOSGeometry('Polygon((-100 0, 0 150, 150 0, 0 -100, -100 0))', 4326) 
nodes = Nodes.objects.filter(poly__contains=mpoint) 

我得到以下錯誤:

 
NameError: name 'mpoint' is not defined

注:M點是在我的表中的列,並在我的節點類models.py

任何幫助將不勝感激!

回答

2

你的語法是不正確的,你應該切換 '聚' 和 'M點' 是這樣的:

節點= Nodes.objects.filter(mpoint__contains =聚)