Python 具有Mysql坐标/多边形精度的Geodjango

Python 具有Mysql坐标/多边形精度的Geodjango,python,mysql,django,polygon,geodjango,Python,Mysql,Django,Polygon,Geodjango,我已经用MySQL创建了一个geodjango数据库 我的问题是,当我添加一个带有polyGoField的新记录,然后检查 对于一个点,如果它在这个多边形内,我会得到一个错误的结果(我应该有更多的点)。我使用[Location.objects.filter(shape\uu contains='POINT(-0.058188 51.504289)]检查多边形形状内的点 我的模型是: class Location(models.Model): locationId = models.Int

我已经用MySQL创建了一个geodjango数据库

我的问题是,当我添加一个带有polyGoField的新记录,然后检查 对于一个点,如果它在这个多边形内,我会得到一个错误的结果(我应该有更多的点)。我使用
[Location.objects.filter(shape\uu contains='POINT(-0.058188 51.504289)]
检查多边形形状内的点

我的模型是:

class Location(models.Model):
    locationId = models.IntegerField(unique=True)
    shape = models.PolygonField(null=True, blank=True)
    objects = models.GeoManager()
要将我的形状添加到我使用的数据库中,请执行以下操作:

polygon = Polygon(((-0.076406999999999975,51.495287999999995),(-0.076412999999999953,51.495159000000008), …(-0.076406999999999975,51.495287999999995)))
请看这张图片 即使在geodjango admin中的地图上,我们也可以看到该多边形的边界不在正确的褶皱中

我使用了一个简单的python脚本(如下所示)将我的结果与geodjango进行比较:

感谢您的帮助

引用贾斯汀·布隆的话:

“MySQL是一个残废的空间数据库…”

它实际上执行bbcontains而不是contains,并且以不可靠的结果而闻名

我建议转到PostgreSQL。

如果不是,我没有答案。

谢谢你的帮助。最后,我采用了两阶段方法:

**-第一步**是使用形状检查结果列表


**-第二步**是循环这些结果,并使用多边形检查点是否在这些多边形内。相交(定位点)

我同意。PostgreSQL是唯一严肃的选择。出于同样的目的,我刚从mysql迁移到postGIS,安装/管理和查询并不困难。