在python中使用psycopg2将多边形顶点转换为lat/lon

2024-09-28 21:52:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用psychopg2获得我的多边形的所有顶点的点。下面的代码成功执行。。。在

cur = conn.cursor()
cur.execute("""SELECT ST_DumpPoints(ST_AsText(geom)) from dry_overlay""")


rows = cur.fetchall()
print "\nShow me the databases:\n"
for row in rows:
    print "   ", row[0]

但它产生的输出如下所示:

^{pr2}$

我知道第二个元素是WKT,但是如何把它转换成经纬坐标呢?我以为ST_AsText()会执行这个功能


Tags: 代码executeconn多边形selectcursorrowsrow
3条回答

是的,ST_AsText是您需要的功能,但在另一个地方:

SELECT ST_Astext((ST_DumpPoints(geom)).geom) from dry_overlay;

最好使用ST_X和ST_Y,这样就不必解析文本:

^{pr2}$

{{1>你可以使用cd1}来操作这个模块{1},这是非常好的

from shapely import geometry, wkb

test_geom = geometry.Point(0, 0)
test_wkb_hex = wkb.dumps(test_geom, hex=True)

print(test_wkb_hex) # prints: '010100000000000000000000000000000000000000'

my_geom = wkb.loads(test_wkb_hex, hex=True)

print(my_geom) # prints: POINT (0 0)

在您的例子中,只需对您的响应使用wkb.loads(record_geom, hex=True)方法。在

然后,您可以使用shapelygeometry模块提取顶点或执行任何其他数量的任务。在

例如,my_geom.coords.xy将返回坐标的xy数组。在

PPyGIS函数ppygis.Geometry.read_ewkb(...)可以帮助您。在

相关问题 更多 >