【问题标题】:Points to polygon conversion点到多边形的转换
【发布时间】:2012-07-05 06:00:55
【问题描述】:

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

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.18 39.43,-880.18 39.43,-880.18 >

【问题讨论】:

    标签: gis postgis gdal


    【解决方案1】:

    您可以很容易地将其格式化为 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');
    

    【讨论】:

    • 因此,如果将 polygon_from_funny_format 存储在 xfoo 列中并且我执行了这些查询,那么我要做的就是代替选择 INSERT INTO the_geom?
    • 值得一试..这个函数返回一个几何,所以它应该进入the_geom。它可能只会在输入出现异常时抱怨,例如线性环未闭合(开始/结束相同)
    • 如果 有绳索,我基本上会尝试将此 alerts.weather.gov/cap/us.php?x=0 转换为 postgis,您知道如何去做吗?
    • 是的,您需要以某种方式从文档中解析每个entry,并抓取您需要的属性。这是我在 Python 中编写的代码。然而,说起来容易做起来难。
    猜你喜欢
    • 2015-01-26
    • 2014-04-29
    • 2021-06-16
    • 2018-08-19
    • 1970-01-01
    • 2011-10-18
    • 2013-10-03
    • 2013-04-21
    • 2010-10-28
    相关资源
    最近更新 更多