J'ai un modèle qui est basé sur un shapefile:Geodjango- ne peut pas obtenir le point dans un polygone
Mon modèle est: des modèles d'importation 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
J'ai importé avec succès les polygones dans ma base de données:
len(RegionBorder.objects.all())
9
Mais lorsque je tente de trouver un point dans les polygones, je ne reçois rien en arrière. Je sais que le point doit être dans le polygone car ce sont des cartes des régions de l'Angleterre et j'essaie de trouver la colonne de Nelsons au milieu de Londres.
p = GEOSGeometry("Point(-0.127907 51.507786)", srid=27700)
RegionBorder.objects.filter(mpoly__contains=p)
[]
Qu'est-ce que je fais mal? J'ai échangé les coordonnées juste au cas où je les aurais eu à l'envers, j'ai supprimé les arguments srid et j'ai recommencé. C'est la première fois que je fais des choses SIG, donc je suis complètement perdu