python - postgresql 和 python

标签 python postgresql

我需要使用 python 可视化来自“postgis”数据库 (postgresql) 的空间数据(20 个多边形)。我只知道如何将 postgresql 数据库与 python 连接,但我不知道如何可视化这些多边形。这是我大学的项目。我们需要使用例如 matplotlib 并在 python 中创建应用程序,它将可视化来自 postgresql 数据库的 shapefiles (.shp)。

我从这段代码开始,但我不知道如何继续:

import psycopg2
conn = psycopg2.connect("dbname='***' user='***' host='***' password='***'")
print 'Succesfully connected'

cur = conn.cursor()
cur.execute("""SELECT astext(the_geom) from buildings;""")
listpoly = cur.fetchall()
conn.close()

最佳答案

我很幸运地使用了 Python Imaging Library当我需要创建光栅(位图)图形时。它有一个非常简单的界面,可以很容易地将图形叠加在另一个图像之上。不幸的是,PIL 并不经常更新。可能是因为它有效。以下是如何制作一个简单的多边形(来自 Nadia Alrami's excellent little intro to PIL ):

im = Image.new('RGBA', (100, 100), (0, 0, 0, 0)) # Create a blank image
draw = ImageDraw.Draw(im)
lines = [(50, 0), (0, 40), (20, 100), (80, 100), (100, 40)]
draw.polygon(lines, fill="black")

对于更复杂的图像,我倾向于使用 svgfig 在 SVG 中渲染它们python 包。因为它是 SVG,所以它们非常适合在 Web 浏览器上缩放和共享。不幸的是,我不相信 svgfig 有一个很好的多边形函数,所以你需要通过做这样的事情来破解你自己的:

def polygon(points):
    for x in xrange(len(points)-1):
        line(points[x][0], points[x][1], points[x+1][0], points[x+1][1])
    line(points[-1][0], points[-1][1], points[0][0], points[0][1])

关于python - postgresql 和 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1776511/

相关文章:

python - 将实时输出保存到 python 中的文件中

PostgreSQL, bool 类型将值存储为 "T"和 "F"的问题破坏了 ORM

postgresql - 缺少表 "token"的 FROM 子句条目

python - 类型为 'NoneType' 的对象没有 len(),但我很确定我的对象是一个有效列表

python - matplotlib fill_ Between 显示点

Python SQLITE 插入不工作

python - 我怎样才能简化我的 python 测验? (让它更短)

django - 在 Heroku 中查看数据库

postgresql - 在 PostgreSQL 中导出序列

python - Peewee 的 Where 子句中的 IN 条件