我在做地理定位,Django没有点域。所以,我不得不用原始SQL编写。Django库GeoDjango不支持以下MYSQL数据库查询(有人能帮我验证一下吗?)在
cursor.execute("SELECT id FROM l_tag WHERE\
(GLength(LineStringFromWKB(LineString(asbinary(utm),asbinary(PointFromWKB(point(%s, %s)))))) < %s + accuracy + %s)\
我不明白为什么GeoDjango库不能在MYSQL数据库中这样做。我讨厌用原始SQL来计算两点之间的距离。有没有办法可以为Django创建自己的库来处理这个问题?如果是这样,有多难?在
你为什么不扩展一个已经存在的类呢?只是好奇,希望我能具体帮助你。在
GeoDjango确实有一个点域。在
看起来您正在尝试执行dwithin字段查找,这在MySQL上不起作用(截至2010年4月),但在Postgres中可以:
类标记(型号): 点域=点域()
在Tag.objects.filter标签(点_udwithin=(点,D(mi=4)))
注意这种查询,因为它需要表扫描。如果可以选择矩形区域内的所有点,则可以使用包含边界框的查询:
在Tag.objects.filter标签(所含点=geom)
其中geom是一个多边形。在
相关问题 更多 >
编程相关推荐