MySQL で動作する geodjango データベースを作成しました。
私の問題は、PolygonField を使用して新しいレコードを追加し、ポイントがこのポリゴン内にあるかどうかを確認すると、間違った結果が得られることです (より多くのポイントが必要です)。[Location.objects.filter(shape__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)))
この画像を参照してくださいhttp://i.stack.imgur.com/qRSnX.png geodjango admin のマップでも、このポリゴンの境界が正しい位置にないことがわかります。
このような単純な python スクリプトを使用して、結果を geodjango と比較していました: http://geospatialpython.com/2011/01/point-in-polygon.html
ご協力ありがとうございました