【问题标题】:Inserting two datafields into a single datafield in PostGis that are the same projection在 PostGis 中将两个数据字段插入到相同投影的单个数据字段中
【发布时间】:2010-11-11 12:39:40
【问题描述】:

我对 GIS 世界还是很陌生,所以请耐心等待。

我在 PostGis 中的 ESTR89 / UTM 32N / SRID 25832 列有一个单独的数据字段。例如。值为 0101000020E8640000C573D4301A122641113FF122C5965741

我正在使用网络服务来导入新数据,但我的数据供应商有两列。例如。值为 6174030,866 和 724162,419

问题在于 web 服务的规范还说它的两列是 ESTR89 / UTM 32N / SRID 25832。

对于如何为 PostGIS 创建一个将两列组合或转换为单列的 INSERT 语句,我感到有些困惑。当然,如果我对此有遗漏或误解。

我一直在查看st_transform,但我似乎无法掌握这一点。

PostGIS 信息:"POSTGIS="1.3.3" GEOS="3.0.0-CAPI-1.4.1" PROJ="Rel. 4.6.0,2007 年 12 月 21 日“USE_STATS”

任何朝着正确方向的提示或轻推都会很好。 ;-)

【问题讨论】:

    标签: postgresql gis postgis


    【解决方案1】:

    如果我对您的问题的理解正确,那么您想要做的是从 x 和 y 坐标中找到一个点,然后将该点插入到带有点列的表中。

    所以你要做的是像这样使用 st_makepoint 创建点,假设 x 坐标的字段是 xfld 并且 y 坐标的字段是导入表中的 yfld: st_makepoint(xfld,yfld)

    /尼克拉斯

    【讨论】:

    • 在我看到你的帖子之前我设法弄清楚了这一点:SELECT st_geomfromtext('POINT(6174030.866 724162.419)', 25832) //返回“0101000020E8640000448B6CB7538D5741022B87D68419261” 6174030.866,724162.419) // 返回 "0101000000448B6CB7538D5741022B87D684192641" 它返回一个几何图形,上面的那个让我控制要使用的投影。 :-)
    • 是的,你是对的。 geomfromtext 允许您指定点的网格。使用 st_makepoint 您需要使用 st_setsrid 来指定它。在您的情况下使用 st_makepopint 的优点是,如果使用 geomfromtext 类似的东西,您必须构造 wkt 字符串:st_geomfromtext(POINT('||xfld||' '||yfld||')',25832)。另一种方法是 st_setsrid(st_makepoint(xfld,yfld),258323)
    猜你喜欢
    • 2013-10-20
    • 2015-04-03
    • 1970-01-01
    • 2021-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-17
    • 1970-01-01
    相关资源
    最近更新 更多