2016-08-31 2 views
1

Ich habe zwei django Modelle:geodjango überprüfen PointField in PolygonField

class Region(models.Model): 
    geometry = models.PolygonField() 

class Position(models.Model): 
    coordinates = models.PointField() 

Ich versuche, wenn eine Position zu überprüfen geographisch in einer Region enthalten ist:

def check(region, position): 
    return position.coordinates.intersect(region.geometry) 

Aber es zurückgeben immer Falsch , auch wenn die Position innerhalb der Region enthalten ist (ich rendere sowohl das PointField als auch das RegionField mit django-leaflet). Ich habe auch versucht mit:

def check(region, position): 
    return position.coordinates.within(region.geometry) 

aber bisher keine Ergebnisse. Hier sind die Testdaten, die ich verwende (geojson):

{"coordinates": [46.2071762, 11.1245718], "type": "Point"} 
{"coordinates": [[[11.102371215820312, 46.21939582902924], [11.106491088867188, 46.22111800038881], [11.134214401245117, 46.22188999070486], [11.140050888061523, 46.21791115519151], [11.141080856323242, 46.21422899084459], [11.137990951538086, 46.207695510993354], [11.13412857055664, 46.20122065978115], [11.12485885620117, 46.198844376182535], [11.102371215820312, 46.21939582902924]]], "type": "Polygon"} 

Irgendein Hinweis auf, was das Problem sein könnte? Vielen Dank im Voraus!

Antwort

2

Ihr Fehler ist logisch, ich denke.Points Breiten- und Längengrad sollte vertauscht werden. ich meine

{"coordinates": [11.1245718, 46.2071762], "type": "Point"} 

Statt

{"coordinates": [46.2071762, 11.1245718], "type": "Point"} 
+0

das war es. Vielen Dank! – hohenstaufen

Verwandte Themen