1

我正在使用带有 postgis 的 postgresql。我有几个问题:

  1. 尝试使用以下语法插入具有多边形列的表中:
ST_GeomFromText('POLYGON((long1 lat1, long2 lat2, long3 lat3))')

失败并出现以下错误:function geomfromtext(unknown) does not exist

  1. 有什么区别
CREATE TABLE my_table (my_polys polygon);

CREATE TABLE my_table2 (my_polys GEOGRAPHY(POLYGON));

为什么会这样:

INSERT INTO my_table (my_polys) VALUES ('
    (51.504824, -0.125918),
    (51.504930, -0.122743),
    (51.504930, -0.110297),
    (51.504824, -0.102229),
    (51.503435, -0.099311)'
);

可以正常工作my_table,但不能正常工作my_table2(我已将表名更改为my_table2

  1. 多边形最多可以有多少点?
4

2 回答 2

1

当您的几何图形可能环绕日期线时,地理数据类型最有用。如果没有,最好使用普通几何数据类型,因为 Postgis 中的大多数函数都设计用于平面几何。如果您的数据是纬度/经度,您可以在创建列时明确设置:

create table foo geom geometry(POLYGON, 4326);

如果您想在一个坐标系和另一个坐标系之间进行转换,则显式设置坐标参考系很有用,并且如果您尝试在不同坐标系中的几何之间运行交叉点,则有助于防止出现意外。

很难想象上面的插入片段可以与任何表格一起使用,不仅有尾随逗号,而且没有 st_geomfromtext、st_makepolygon 或其他任何东西可以将您写入的内容转换为任何几何图形。

我不知道多边形的最大大小是多少,尽管正如 Chris 已经说过的,当您尝试对它们进行空间查询时,您可能会遇到 1gb 大小的多边形的性能问题。

于 2014-03-11T15:03:35.007 回答
0

您的多边形大小受最大存储大小的限制。我相信烤列的大小限制为 1gb,尽管我猜你很可能在超过最大点数之前很久就遇到性能问题。

Polygon 是 PostgreSQL 中的内置类型,PostGIS 为几何和地理提供了其他类型。据我了解,内置类型仅适用于 2d 欧几里得空间,而 PostGIS 提供了其他选项。

至于为什么您的查询失败,我想知道您正在运行哪个版本的 PostGIS,以及为什么 st_geomfromtext 调用 geomfromtext。

于 2013-12-06T02:04:23.253 回答