Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django'中的几何交点;s GEOS API不再工作_Python_Django_Geometry_Geos - Fatal编程技术网

Python Django'中的几何交点;s GEOS API不再工作

Python Django'中的几何交点;s GEOS API不再工作,python,django,geometry,geos,Python,Django,Geometry,Geos,我已经使用Django的GEOS API有一段时间了,效果非常好。我升级了我的项目中的一些东西和一些代码,这些代码决定了点是否在多边形中不再起作用。我把它浓缩成这个,这说明了问题所在 我建立了这个模型: class TestPoint(models.Model): name = models.CharField(max_length=64) pickup_location = models.PointField(srid=4326) 然后我跑: >>> fro

我已经使用Django的GEOS API有一段时间了,效果非常好。我升级了我的项目中的一些东西和一些代码,这些代码决定了点是否在多边形中不再起作用。我把它浓缩成这个,这说明了问题所在

我建立了这个模型:

class TestPoint(models.Model):
    name = models.CharField(max_length=64)
    pickup_location = models.PointField(srid=4326)
然后我跑:

>>> from django.contrib.gis.geos import Point, Polygon
>>> from mytest.models import TestPoint
>>> p1 = TestPoint(name="p1", pickup_location=Point(-118.4, 33.9))
>>> p2 = TestPoint(name="p2", pickup_location=Point(-118.45, 34))
>>> p3 = TestPoint(name="p3", pickup_location=Point(-118.3, 34.02))
>>> p4 = TestPoint(name="p4", pickup_location=Point(-118.46, 34.01))
>>> bbox = (-118.5, 34, -118, 34.5)
>>> poly = Polygon().from_bbox(bbox)
>>> poly.srid = 4326
>>> hits = TestPoints.objects.filter(pickup_location__within=poly)
>>> hits
<QuerySet []>
来自django.contrib.gis.geos导入点的多边形 >>>从mytest.models导入测试点 >>>p1=测试点(name=“p1”,拾取位置=点(-118.4,33.9)) >>>p2=测试点(name=“p2”,拾取位置=点(-118.45,34)) >>>p3=测试点(name=“p3”,拾取位置=点(-118.3,34.02)) >>>p4=测试点(name=“p4”,拾取位置=点(-118.46,34.01)) >>>bbox=(-118.5,34,-118,34.5) >>>多边形=多边形()。来自_bbox(bbox) >>>poly.srid=4326 >>>hits=TestPoints.objects.filter(拾取位置内=多边形) >>>击中 我希望
点击次数
包含3个点,但正如您所看到的,它是空的

我想知道他们是否把
中的坐标顺序从bbox()
改成了,但说仍然是(xmin,ymin,xmax,ymax)


发生了什么事?

您没有将测试点保存到数据库中。您可以通过以下方式保存这些内容:

p1 = TestPoint.objects.create(name='p1', pickup_location=Point(-118.4, 33.9))
p1=TestPoint.objects.create(name='p1',picku位置=Point(-118.4,33.9))
通过使用:

p1 = TestPoint(name="p1", pickup_location=Point(-118.4, 33.9))
p1=TestPoint(name=“p1”,picku位置=Point(-118.4,33.9))

您只需在Django/Python层创建一个
TestPoint
对象,但从未将其放入数据库。

您没有将
TestPoint
保存到数据库中。您可以通过以下方式保存这些内容:

p1 = TestPoint.objects.create(name='p1', pickup_location=Point(-118.4, 33.9))
p1=TestPoint.objects.create(name='p1',picku位置=Point(-118.4,33.9))
通过使用:

p1 = TestPoint(name="p1", pickup_location=Point(-118.4, 33.9))
p1=TestPoint(name=“p1”,picku位置=Point(-118.4,33.9))

您只需在Django/Python层创建一个
TestPoint
对象,但从未将其放入数据库。

您没有将
TestPoint
保存到数据库中。该死,您是对的。这实际上是我的测试示例的失败。实际代码在数据库中有点,但仍然失败。我将尝试从实际代码中提取示例并更新问题。您没有将测试点保存到数据库中。该死,您是对的。这实际上是我的测试示例的失败。实际代码在数据库中有点,但仍然失败。我将尝试从实际代码中提取示例,并更新问题。