0

我正在将一个 xml 文件加载到我的 postgresql / postgis 数据库中,以下字段包含我想要转换为多边形的区域的纬度长度的线。有没有办法使用 ST_MPolyFromText 来完成这项工作,样本的 long 和 lat 与将其加载到数据库中的方式相反?

39.43,-80.29 39.46,-80.49 39.43,-80.52 39.46,-80.66 39.98,-80.76 40.07,-80.43 39.46,-79.91 39.39,-80.10 39.40,-80.121 39.34,-80.19.93,-80.18.9

4

1 回答 1

0

您可以很容易地将其格式化为 WKT。首先,将逗号转换为空格,将空格转换为逗号,然后将坐标从 lat,long 转换为 long,lat (x,y)。这是一个 PostGIS 函数:

CREATE FUNCTION polygon_from_funny_format(latlon text) RETURNS geometry AS
$BODY$SELECT
    ST_FlipCoordinates(('SRID=4326;POLYGON((' ||
                       translate($1, ', ', ' ,') || '))')::geometry);
$BODY$ LANGUAGE sql IMMUTABLE STRICT;

现在你可以这样做:

SELECT polygon_from_funny_format('39.43,-80.29 39.46,-80.49 39.43,-80.52 39.46,-80.66 39.98,-80.76 40.07,-80.43 39.46,-79.91 39.39,-80.10 39.40,-80.11 39.39,-80.18 39.43,-80.29');
于 2012-07-06T04:17:56.000 回答