使用 PostGIS 将点转换为多边形

2023-11-25

我想使用 PostGIS 创建一个多边形表。表中的每一行 'point' 有三分ID. Table 'point_location' 有点的位置信息。我用谷歌搜索了这个问题但没有找到答案。下面的代码有什么问题?

SELECT ST_GeomFromText('POLYGON((' || b.x || ' ' || b.y || ',' || c.x || ' ' || c.y || ',' || d.x || ' ' || d.y || ',' || b.x || ' ' || b.y'))',4326) 
AS polygon
FROM point a, point_location b, point_location c, point_location d
WHERE a.p1=b.point_id AND a.p2=c.point_id AND a.p3=d.point_id

从点构造多边形的更好方法是使用PostGIS 的几何构造函数。这样,您就无需转换二进制 → 文本 → 二进制 (WKB → WKT → WKB),速度较慢、有损,并且容易出现文本格式干扰,如缺失的内容所示||。例如,尝试:

SELECT ST_MakePolygon(ST_MakeLine(ARRAY[b, c, d, b]))
FROM point a, point_location b, point_location c, point_location d
WHERE a.p1=b.point_id and a.p2=c.point_id and a.p3=d.point_id
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 PostGIS 将点转换为多边形 的相关文章

随机推荐

  • MicrosoftGraph API 无法将消息标记为已读

    我正在使用Microsoft Graphnuget 包 版本 1 6 2 我尝试将电子邮件标记为已读 这是代码 msg IsRead true await MainPage GraphServiceClient Me Messages ms
  • botocore.exceptions.SSLError:WIndows 上的 SSL 验证失败

    下面的代码用于获取区域 import boto3 ec2 boto3 client ec2 region name print ec2 describe regions 在我的机器上执行此代码时 我收到此错误 botocore except
  • PHP 5.3 并通过引用分配 new 的返回值

    通过引用分配 new 的返回值已经已弃用在 PHP 5 3 中 像这样 obj new Foo 现在抛出一个E DEPRECATED error 当将具有大量遗留代码的大型应用程序升级到 5 3 时 这会导致许多不需要的通知 作为解决此问题
  • Django REST Framework POST 嵌套对象

    我现在面临一个小问题Django 休息框架 我正在尝试发布一个其中包含嵌套对象的对象 这是我的serializers py class ClassSerializer serializers ModelSerializer class Me
  • 如果在 64 位代码中使用 32 位 int 0x80 Linux ABI 会发生什么?

    int 0x80在 Linux 上总是调用 32 位 ABI 无论从什么模式调用 args inebx ecx 以及来自的系统调用号 usr include asm unistd 32 h 或者在没有编译的 64 位内核上崩溃CONFIG
  • 使用 css 仅选择表格中的第一行

    我在 HTML 页面中有很多表 其中一些仅使用tr td其他人正在尽其所能 thead tbody tfoot tr th td 由于某些问题 我们使用 CSS 规则来制作表格的顶部和左侧边框以及每个td有自己的右边框和下边框 因为这个特殊
  • 从 Haskell 中的“Maybe a”返回类型获取“a”值

    我有一个 Haskell 函数eval WExp gt Memory gt WValue对于不同的情况有一堆不同的实例 目前 有关知识WExp Memory and WValue不相关 我的问题是 对于一个特定的实例eval 我正在使用lo
  • 测试使用 ActiveRecord 模型的 gem

    我编写了一个 gem 如果您传入 ActiveRecord 模型 它会将数据导入到您的数据库中 例如 importer Importer new Widget importer import data source 有没有好的方法来测试这个
  • 如何使用绑定源判断用户是否修改了数据?

    我有一个绑定到绑定源的 DataGridView 该绑定源又绑定到List
  • XAML 和 WPF - 将变量传递到 XAML Windows

    我对 WPF 还很陌生 我正在尝试加载一个 XAML 窗口并在其构造函数中将一个变量传递给此 XAML 因为我需要它从这个传递的变量中加载一些项目 有人能给我指出如何解决这个问题的方向吗 如何启动 XAML 窗口并给它一个变量 提前致谢 埃
  • 如何将 qm 文件转换为 ts 文件?

    我正在使用 Qt 4 5 来翻译 ts文件到一个 qm文件 但现在我已经失去了 ts file 我怎样才能把它转换回来 从 qm to ts 使用lconvert lconvert compiled qm o source ts
  • 从秩亏矩阵中提取线性独立行的例程

    我正在努力解决以下问题 我有一些非常大的矩阵 例如 至少2000x2000 并且可能将来它们甚至会达到10000x10000 并且等级非常小 2或3 称之为N 我需要找到一个高效的Python例程来从中提取线性独立的行 或列 矩阵是对称的
  • 更改应用程序区域设置后如何获取设备区域设置

    我正在根据用户选择更改应用程序区域设置 独立于设备区域设置 using public void setDefaultLocale Context context String locale Locale appLoc new Locale
  • 使用 Flexbox 的全宽和多列

    我正在尝试创建一个flexbox同一容器上有全角行和多列 我试过了flex break after 但不确定我错过了什么 我试图避免有多个类 例如 fullwidth and multiple columns 这就是我想要实现的目标 ite
  • Java 中的“无法映射的编码字符”警告

    我目前正在开发一个 Java 项目 该项目在编译时发出以下警告 src com myco apps AppDBCore java 439 warning unmappable character for encoding UTF8 java
  • 如何解决本地主机的“idpiframe_initialization_failed”问题?

    这是我的初始化代码 function HandleGoogleApiLibrary Load client auth2 libraries gapi load client auth2 callback function Initializ
  • gem install Rails 错误:执行 gem 时 ... (Errno::EACCES)

    我不知何故弄乱了我的 PATH 更改了它 并且我的红宝石和 Rails 宝石无法工作 为了解决这个问题 我所做的就是重新安装 RVM 现在我的红宝石在终端中运行良好 跑步时gem install rails我受到这样的欢迎 Permissi
  • 在WebGL中将大数组传递到uniform中

    想知道是否可以将大型数组传递到 WebGL 着色器中 如下所示 array here uniform vec4 huge mydynamicarray void main iterate through the array here to
  • 写入控制台和文本文件

    我从互联网上找到了下面的代码 可以工作 但它不会将打印的控制台写入 omt txt 它只写入System out println第二个 catch 块之后的语句 如果您运行一次代码 您就会明白我的意思 我想要的就是将控制台上的内容写入 om
  • 使用 PostGIS 将点转换为多边形

    我想使用 PostGIS 创建一个多边形表 表中的每一行 point 有三分ID Table point location 有点的位置信息 我用谷歌搜索了这个问题但没有找到答案 下面的代码有什么问题 SELECT ST GeomFromTe