当前位置: 首页 > 知识库问答 >
问题:

QGIS 在邮政中显示来自查询的点

党建义
2023-03-14

我正在从postgreql/postgis表中的x, y列在视图中创建一个点几何形状。

我愿意:

创建或替换视图my_points选择ST_SetSRID(ST_MakePoint(geo. x, geo. y),2154)作为geom,pg_typeof(geom)作为type from table le1加入table le2 geo ontable1.id=geo.id

postgresql 中一切正常,我可以看到这在列几何中返回了一个带有几何图形的视图。只是为了检查类型,还有第二列类型检查几何的格式是否为几何图形。

现在,当我在QGIS中并尝试将视图放入图层列表时,会出现以下消息:

图层无效:图层dbname='x'host=x port=5432用户='x'密码='x'sslmo=x key='geom'srid=2154 type=POINT table="公共"。"my_points"(geom)sql=不是有效的图层,无法添加到地图中

发生了什么?无法在要导入QGIS的查询中创建geom?

ps:我使用QGIS 2.8.1

共有3个答案

彭鸿文
2023-03-14

虽然在“添加 PostGIS 表”对话框中指定主键列肯定有效,但我想要简单拖放的便利性(从浏览器面板到图层面板)。对我有用的是重新排序视图定义中的列,以便主键列排在第一位。然后,我可以简单地将视图从浏览器面板直接拖到图层面板中,而不会出错。

单于越
2023-03-14

问题是 regtype 类型的字段几何。我不知道为什么这会打扰Qgis,但它确实如此。

将其更改为text,视图将工作:

create or replace view my_points as
   select 
   ST_SetSRID(ST_MakePoint(geo.x,geo.y), 2154) as geom,
   pg_typeof(geom)::TEXT as type
   from table1
   join table2 geo on table1.id = geo.id
贝杜吟
2023-03-14

您可以在QGIS中加载PostGIS视图。但是,您的视图需要有一个列,每一行都有唯一的值,可以充当主键。在QGIS中,在“添加PostGIS表”对话框中,您需要在“主键”菜单中指定此列(在下面的屏幕截图中,此列称为id_tronc;菜单显示所有可用列)。

编辑:上面的解决方案会奏效,但答案并不完全正确。QGIS不需要主键,至少是更新的版本。问题可能是列类型,请参见@tommaso di bucchianico的答案。

 类似资料:
  • 我正在处理一个使用MongoDb数据库的Node.js后端项目。在我查询数据库并收到数据后,它将不会使用res.send()在浏览器中显示数据。我还尝试了res.json()。然而,数据显示在我的控制台,但只是不会显示在邮差或我的浏览器。来自mongoDB的查询数据不是json或数组吗?我读了一下,上面写着它是一个指向数据的光标。这个数据不能被转换为在broswer中显示吗? mycode以及控制

  • 在尝试了“php artisan存储:链接”等解决方案后,图像仍然无法在前端(vuejs)中显示。 图像本身存储在“storage/public/app/xxx.png”中 vuejs中的代码是。 我试图通过浏览器访问图像”http://127.0.0.1:80/api/storage/xxx.png,但导致“未找到” 任何线索都将不胜感激。

  • 在hive中,我们可以“在table_name中显示列”,只获取表的列名,但我希望查询只显示Impala中表的列名,如何才能获取Impala中表的列名呢?

  • 问题内容: 我正在尝试从C#查询SQL Server数据库 我有课 我的查询中有问题。 当我给普通查询“从表中选择*”时,这给了我完美的结果。 但是当我尝试给出条件时,它给了我错误。有什么建议可以解决吗?谢谢。 问题答案: 钿狅笍 警告 此答案包含一个SQL注入安全漏洞。不要使用它。如该问题的其他一些答案所述(例如,Tony Hopkinson的答案),请考虑使用参数化查询。 尝试在where子句

  • 问题内容: 我正在尝试从sql数据库中的php中显示结果,MySQL语句是正确的,并且可以在phpMyAdmin中执行我想要的操作,但是由于某种原因,我的代码在网页中中断了 这是代码 这就是我得到的 通常,我需要由表ID限制从最小值到最大值的随机数 问题答案: 您需要从查询获得的结果集中的每一行中获取数据。您可以为此使用。 将代码更改为此:

  • 我试图在远程服务器上使用sqlcl来检索给定oracle数据库中表的表定义 因为我必须在那里使用cli,所以我不能简单地使用SQLDeveloper并从那里获取表定义(不能从服务器外部连接到DB)。 想法是使用 为了得到我需要的表的表DDL 但是,当我在sqlcl工具中运行此查询时,输出如下所示: 就这样,没有更多的信息。 有人知道我如何获得要显示的查询的完整结果吗 (或者简单地通过管道将其传输到