由於GQL引擎的限制,有人建議想要執行鄰近搜索的人應該使用建議的地理模型找到這些限制的一些方法。它可能不是一個非常優雅的或快速的解決方案,但有什麼從這裏停止使用該算法的人:Google App Engine和Google Maps在Python中搜索近距離搜索
SELECT id, (3959 * acos(cos(radians(lat_t)) * cos(radians(lat)) * cos(radians(lng) - radians(lng_t)) + sin(radians(lat_t)) * sin(radians(lat)))) AS distance FROM Stores HAVING distance < 25 ORDER BY distance
爲計算距離的簡單方法。即我們簡單地通過循環遍歷數據存儲區中的每條記錄來手動計算每對(lat,lng)和(lat_t,lng_t)的距離,從而獲得目標距離內所有記錄的id,而無需求助於使用HAVING命令?因此,總結一下,我們會做一個簡單的GQL查找來獲取所有記錄並循環遍歷所有的lng/lat對,並與我們的目標值進行比較。
http://code.google.com/apis/maps/articles/geospatial.html