python – 如何在5米的距离内查询我的所有数据?
我正在使用GeoDjango和PostGIS.然后我在如何查询我的postgres数据库表以获取5米范围内的所有数据时遇到麻烦.
UPDATES1 我从这个网址https://docs.djangoproject.com/en/dev/ref/contrib/gis/geoquerysets/#std:fieldlookup-distance_lte找到了一些东西 Zipcode.objects.filter(poly__distance_lte =(geom,D(* m * = 5))) 但不知道如何准备参数和变量. >什么是poly_distance_lte?是一个功能? 解决方法
通常,此类查询的最佳PostGIS功能是
ST_DWithin():
例如.所有居住在距离商店#1 1000米范围内的客户: SELECT customers.* FROM customers,shops WHERE ST_DWithin(customers.the_geog,shops.the_geog,1000) AND shop.id = 1 ST_DWithin将使用您应该创建的空间索引,因此优于ST_Distance. 在Django中似乎有一个名为dwithin的相应过滤器:
D(m = 5)返回长度为5米的距离物体 geom是要从中计算Zipcode对象距离的几何体 dwithin()是使用的函数 poly是Zipcode对象的几何属性 z = Zipcode(code=77096,poly='POLYGON(( 10 10,10 20,20 20,20 15,10 10))') (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |