跳转到主要内容

对Postgis进行测试

项目描述

摘要

为在Postgis数据库(即启用了Postgis扩展的PostgreSQL数据库)中存储的几何属性添加类型和函数(即存储在Postgis数据库中的几何属性)。

当前立方体只支持Postgis的2.0和更高版本。

在定义数据模型模式中的属性时引入了一个新类型

  • 一个Geometry类型。此外,您还应该提供以下元素以及一个Geometry属性

    • geom_type。此属性将接受的几何类型,例如POINTMULTILINESTRINGPOLYGON

    • srid。几何坐标将生活的空间参考系统。这是一个整数,是外键,必须与spatial_ref_sys表中的srid键相匹配。大多数情况下,它将与空间系统EPSG代码相同,

    • coord_dimension。几何使用的维度数。默认为2。

  • 一个Geography类型(请参阅描述)。

然后您还可以使用如ST_INTERSECTSST_WITHINST_UNION之类的几何函数来处理此新类型。

有关Postgis的参考文档,请参阅Postgis手册

示例

schema.py中,可以声明一个类似于以下所示的City实体。

class City(EntityType):
    name = String(required=True)
    geometry = Geometry(geom_type='POLYGON', srid=4326)

然后您可以进行如下查询

# get all cities in a given bounding box
rql('City C WHERE C geometry G HAVING(ST_WITHIN(G, ST_MAKEENVELOPE('
    '%(left)s, %(bottom)s, %(right)s, %(top)s, 4326)) = TRUE)',
        {'left': 2.2,
        'right': 2.6,
        'top': 49,
        'bottom': 48})

# get all cities at a given distance from a point, sorted by distance
rql('Any C, ST_DISTANCE(G, ST_SETSRID(ST_MAKEPOINT(2.2, 48.4), 4326)) '
    'ORDERBY 5 WHERE '
        'C geometry G HAVING ('
        ' ST_DWITHIN(G, ST_SETSRID(ST_MAKEPOINT(2.2, 48.4), 4326), 0.1) = TRUE)')

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

cubicweb-postgis-1.0.0.tar.gz (10.0 kB 查看散列值)

上传时间 源代码

构建分发

cubicweb_postgis-1.0.0-py3-none-any.whl (9.6 kB 查看散列值)

上传时间 Python 3

由以下支持