postgis测试

cubicweb-postgis的Python项目详细描述


摘要

添加类型和函数以处理存储在 postgis数据库(即具有postgresql扩展名的postgis数据库 已启用)。

当前多维数据集仅支持postgis的2.0和更高版本

在数据模型模式中定义属性时,它引入了一种新类型:

  • 一个Geometry类型。另外,您应该给出以下元素 以及Geometry属性:
    • geom_type。此属性将 接受,例如POINTMULTILINESTRINGPOLYGON
    • srid。几何坐标将存在的空间参考系 在。这是一个整数和外键,必须与srid键匹配 在spatial_ref_sys表中。大多数情况下,它将与 空间系统epsg代码,
    • coord_dimension。几何图形使用的维数。默认值 到2。
  • 一个Geography类型(参见description)。

然后您还可以使用像ST_INTERSECTS,^{tt12}这样的几何函数$ 或者ST_UNION来处理这个新类型。

有关postgis的参考文档,请参见Postgis manual

示例

schema.py中,可以声明一个City实体,如下所示。

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

然后您可以进行如下查询:

# get all cities in a given bounding boxrql('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 distancerql('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)')

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
正则表达式使用Java从服务器截断文本   micronaut微服务的java内存消耗   如果私有函数需要相同的输入,java应该在公共函数中显式执行异常检查   为什么我们在java中使用抽象类和抽象方法   Java中接受外来字母的字符串?   cordova Android:ClassNotFoundException,包括ZXing   通过LiveData observer向特定索引添加项时出现java IndexOutOfBoundsException   jsp Java从两个源调用一个servlet   java如何设置网格布局中按钮的位置?   java HashMap返回方法   java JDK错误版本   java如何将现有类集成到新的Swing项目中   java如何在扫描程序位于输入端时使for循环停止   java正则表达式匹配空白表   java组织。格拉德尔。工具。BuildException:设置的代码长度无效   JList中的swing Java格式化字符串   javabeans如何将JavaBean属性映射到另一个名称以进行输出?   ajax请求后的java Rerender RichFaces错误消息