Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.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 Geodjango-Can';在多边形中得不到点_Python_Postgis_Geodjango - Fatal编程技术网

Python Geodjango-Can';在多边形中得不到点

Python Geodjango-Can';在多边形中得不到点,python,postgis,geodjango,Python,Postgis,Geodjango,我有一个基于形状文件的模型: 我的模型是: 从django.contrib.gis.db导入模型 class RegionBorder(models.Model): region_code = models.CharField(max_length=9) region_name = models.CharField(max_length=24) mpoly = models.MultiPolygonField(srid=27700) objects = mod

我有一个基于形状文件的模型:

我的模型是: 从django.contrib.gis.db导入模型

class RegionBorder(models.Model):

    region_code = models.CharField(max_length=9)
    region_name = models.CharField(max_length=24)

    mpoly = models.MultiPolygonField(srid=27700)
    objects = models.GeoManager()

    def __str__(self):
        return self.region_name
我已成功将多边形导入我的数据库:

len(RegionBorder.objects.all())
9
但是当我试图在多边形中找到一个点时,我什么也得不到。我知道这一点必须在多边形中,因为它们是英国地区的地图,我想在伦敦中部找到Nelsons柱。
p = GEOSGeometry("Point(-0.127907 51.507786)", srid=27700)

RegionBorder.objects.filter(mpoly__contains=p)
[]

我做错了什么?我交换了坐标,以防出现错误,我删除了srid参数,然后重新开始。这是我第一次做任何GIS工作,所以我完全迷路了

我为点设置了错误的SRID。通过对lng/lat点使用srid 4326进行修复,然后在搜索前转换为正确的投影

from django.contrib.gis.geos import GEOSGeometry

p = GEOSGeometry("Point(-0.127907 51.507786)", srid=4326) # 4326 for standard lng/lat coordinates

# Transform to same coordinate system as maps
p.transform(27700)

RegionBorder.objects.filter(mpoly__contains=p)
[<RegionBorder: London>]
从django.contrib.gis.geos导入GEOSGeometry
p=GEOSGeometry(“点(-0.127907 51.507786)”,srid=4326)#4326用于标准lng/lat坐标
#转换为与地图相同的坐标系
p、 转换(27700)
RegionBorder.objects.filter(mpoly\uuu contains=p)
[]