postgresql - 插入和无效几何 PostGIS
问题描述
我创建了一个对 postgres/postgis 中的表/视图运行一些有效性检查的函数。Postgres 9.6.11 和 PostGIS 2.3。我现在需要测试这个函数,所以我需要创建一个包含无效几何图形的表。最好的一种可以被纠正,ST_MakeValid
一种不能被纠正,这样我就可以测试所有用例。如何将无效的几何图形插入到 postgis 表中。
解决方案
这不是一项简单的任务,而且非常依赖于版本。
您可以尝试停止一个有效的几何图形,或者您可以尝试插入一个无效的几何图形。
例如,这条线创建了一条无效线(2 点,起点 = 终点)
SELECT st_setsrid(st_geomfromtext('LINESTRING(480 270,480 270)'),3857);
ST_MakeValid
将其转换为一个点。
或创建一个自相交多边形
SELECT st_isValid('polygon((0 0, 1 0, 0 1, 1 1, 0 0))'::geometry);
NOTICE: Self-intersection at or near point 0.5 0.5
st_isvalid
------------
f
ST_MakeValid
将其转换为多面体
您还可以在此处找到更多示例案例
推荐阅读
- python - 仅使用互联网导入 python 模块
- c# - 有没有可能修复以前工作的表格,现在我将它粘贴到另一个表格中它不会工作?
- javascript - 使用 window.open 打开存储在变量中的 URL
- html - 如果无效输入是禁用祖先的一部分,我如何突出显示它们?
- swift - 我可以连接到 BLE 设备并同时广播 iBeacon 吗?
- c - “1e”是什么意思?
- socrata - 将应用程序令牌和查询功能添加到 api json 端点的正确语法是什么?
- linux - 我有一个登录时间的工作脚本,但如果用户未登录,我会收到错误消息
- datastage - 有没有办法比较两个文件并使用数据阶段生成只有字段级别差异的输出?
- jquery - 为什么我的 jquery 展开/折叠行不起作用?