由于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