首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Geodjango/PostGIS中直接添加面

在Geodjango/PostGIS中直接添加面
EN

Stack Overflow用户
提问于 2009-10-01 14:25:42
回答 1查看 4.5K关注 0票数 2

我正在摆弄Geodjango,我只想将一个简单的多边形字段添加到数据库中,然后在其上运行多边形中的点,以确保一切正常。

下面是我在views.py中的代码:

代码语言:javascript
复制
    #adding a polygon
    pe = PolygonExample.objects.create(name="uk_polygon", poly="POLYGON((58.768200159239576, -12.12890625, 58.49369382056807 1.1865234375, 49.18170338770662 -12.9638671875, 50.2612538275847 5.537109375))" )
    #doing the point-in-polygon check
    result = PolygonExample.objects.filter(poly__contains='POINT(52.696361078274485 -0.87890625)') 

下面是我在models.py中的代码:

代码语言:javascript
复制
    class PolygonExample(models.Model):
      name = models.CharField(max_length=16, db_index=True)
      poly = models.PolygonField()
      objects = models.GeoManager()

但是当我尝试添加多边形(PolygonExample.objects.create)时,我得到一个错误:“检查从GEOS C函数"GEOSWKTReader_read”返回的几何图形时遇到错误。

我添加多边形的代码是不是错了?我不知道如何直接插入经度/经度坐标。

或者这是一个GEOS安装错误?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-10-06 17:52:56

您的WKT有几个问题:

排序坐标维度由spaces

  • Coordinate对(或元组)分隔,排序由commas

  • Coordinate is (x,y) --即(,
  1. )

分隔

在英国测试一个多边形应该是这样的:

代码语言:javascript
复制
>>> wkt = "POLYGON((-12.12890625 58.768200159239576, 1.1865234375 58.49369382056807, 5.537109375 50.2612538275847, -12.9638671875 49.18170338770662, -12.12890625 58.768200159239576))"
>>> pe = PolygonExample.objects.create(name="uk_polygon", poly=wkt)
>>> result = PolygonExample.objects.filter(poly__contains='POINT(-0.87890625 52.696361078274485)')  # note x,y order here, too
>>> result[0].name
u'uk_polygon'
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1504288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档