问题标签 [geoalchemy2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
319 浏览

python - Flask Alembic 迁移错误与 geoalchemy2 - 无效的几何类型

我正在尝试实施 Flask-Migrate 来帮助管理迁移,但是在尝试制作迁移脚本时出现错误:“geoalchemy2.exc.ArgumentError: invalid geometry_type 'POINTZ' for dimension 2”。

我有一个 Flask 项目,并且正在使用 geoalchemy2 与 PostGIS 数据库交互。该数据库有一些带有 PolygonZ 和 PointZ 几何形状的表(维度 = 3)。通过命令行使用 Flask-Migrate 的初始迁移工作正常并生成了迁移脚本(然后对其进行了调整以开始工作)。

具有 3D 几何的模型定义如下:

迁移是使用 Flask Migrate 命令在命令行上完成的。

在没有编写脚本的情况下失败并产生此 geoalchemy2 错误

我也尝试过 Flask-Alembic,它最后给了我同样的 geoalchemy2 错误,所以我认为这与 Alembic 如何查看几何列有关。只是不确定是什么。

任何意见,将不胜感激。谢谢

0 投票
2 回答
1331 浏览

python - 是否有 Microsoft SQL Server 地理/几何类型的示例 SQLAlchemy UserDefinedType?

如何创建允许我插入到 SQL Server 上的 Geography 数据类型的 SQLAlchemy UserDefinedType?

我正在使用 Python 3.6 和Pandas to_sql写入一个 SQL Server 表,该表将具有一个地理数据类型的列。我正在使用SQLAlchemy.create_engine使用 DRIVER={ODBC Driver 13 for SQL Server} 创建与 SQLExpress 的数据库连接。我将多边形存储在 GeoPandas 数据框中。

SQLAlchemy 1.3.10不直接提供对 Geography 或 Geometry 数据类型的支持;而且,GeoAlchemy2不支持 MS SQL Server。我一直在尝试使用 SQLAlchemy 的UserDefinedType来查看是否可以得到以下结果:

到目前为止,我有:

我被这个结果困住了(注意整个事情的引号。:

我知道这会起作用的是SQL:

使用 pandas.DataFrame.to_sql 会导致错误:

我假设错误是由于周围的引号导致字符串,而不是传递给 SQL 的函数。

我曾尝试在 bind_processor 返回字符串上使用 sqlalchemy.sql.expression.text ,但出现此错误:

我看过 sqlalchemy.sql.expression.func; 但是,我不知道如何将它与复杂的GEOGRAPHY::STGeomFromText方法一起使用。

我的假设可能不正确,因为这将在 SQL 中起作用:

并简单地使用:

会导致这个错误,即使参数看起来是正确的。它仍然得到相同的操作数类型冲突错误:

这是一个完整的例子:

我希望看到在 SQLAlchemy 或 GeoAlchemy 中直接支持 MS SQL Server 的地理和几何。

0 投票
1 回答
591 浏览

python-3.x - Geoalchemy2 在给定坐标内找到一定距离内的位置

我有一个烧瓶应用程序,它首先从 Google Maps API 获取位置,并试图在我拥有的数据库中找到 1500 米内更接近它的位置。

这是我的场所模型。

我有这个查询来查找在提交地点附近lnglat在 1500 米内的条目。

我得到的是更接近该地点的单点,但它不在 1500 米的限制范围内。我得到与.filter()删除相同的结果。

0 投票
0 回答
345 浏览

sqlalchemy - 多边形包含点 - 使用 GeoAlchemy

我正在尝试使用 GeoAlchemy 查询 PostGIS 表以返回该点所在的行。我有一点,我正在使用来自自然地球的时区 shapefile 。我已经尝试了以下方法,但它只返回查询而不是行项。

它返回以下内容:

看起来这是正确的陈述,我就是无法得到结果!

0 投票
1 回答
545 浏览

json - 使用 Flask + GeoAlchemy2 应用程序返回有效的 GeoJSON

几天以来,我想知道如何让我的 Flask 应用程序返回有效的 GeoJSON,这是我目前得到的:

models.py

现在在主文件中,我有以下路由:

app.py

这是我的两个问题:

1) 返回类似于 JSON 的响应,如下所示: "{\"type\":\"MultiPolygon\",\"coordinates\":[[[[16.8933137,52.471446],...,]]]}" 不是正确的 GeoJSON。jsonify 之前的特征变量看起来是这样的: [('{"type":"MultiPolygon","coordinates":[[[[16.914159616,52.473822807],...,]]]}',)]

2) 我的 GeoAlchemy 查询应该是什么样子,不仅返回几何字段,还返回其他字段?

任何形式的提示或帮助高度赞赏,在此先感谢!

0 投票
1 回答
337 浏览

python - Alembic 为 Geometry 列生成任意类型更改

我正在开发一个使用 SQLite 作为数据库和 Alembic 作为数据库迁移工具的项目。它包括空间数据,因此也包括空间扩展,geoalchemy2并包含在项目中。我正在使用autogenerate命令,它检测到几何列中不存在的一些更改。

这是项目的简化结构:

Alembic的env.py如下:

创建几何表的第一个迁移脚本:

运行此迁移脚本后,表已正确创建:

创建几何表

当我再次运行autogenerate命令时,它应该没有发现任何变化。但是,它会生成一个具有任意类型更改的迁移脚本:

在此处输入图像描述

我知道我可能会设置compare_type参数,False但我想自动检测类型更改。有什么方法可以告诉 Alembicgeometry列的类型是Geometry并且完全没有变化?

0 投票
0 回答
89 浏览

postgresql - 在子查询 sqlalchemy + geoalchemy2 ORM 中从外部查询引用同一个表

我正在尝试将查询转换为 sqlalchemy 和 geoalchemy2 中的相等 orm 语句。我正在努力如何将 p1.geom 的引用获取到 not exists 子句中的子查询中。

我已经尝试了一些,但我得到的最接近的是这样的:

我从中得到了什么:

有什么可以帮助的想法吗?

0 投票
2 回答
246 浏览

sqlalchemy - 在 GeoAlchemy 和 PostGIS 中查找最近的位置

我正在尝试做一个简单的查询,在其中找到离用户最近的位置(在我的示例中,我使用的是机场)。数据库记录如下所示:

我的数据库查询如下所示:

不幸的是,我的函数不断返回空列表。我对 GeoAlchemy 不是很熟悉,因为这是我第一次使用它。任何帮助将不胜感激。

谢谢。

0 投票
1 回答
518 浏览

postgresql - 使用 PostGIS 将点插入到 Postgress 中的几何(点)类型列中时出错

我需要在Column(Geometry(geometry_type='POINT', srid=4326)). 我不知道如何实现srid=4326点数据POINT(58.183594 22.593726)。我搜索了它。我仍然无法解决这个问题!

错误:

FastAPI 路由:

pydantic (schemas.py):

sqlalchemy,geoalchemy2 (tables.py):

crud.py

0 投票
0 回答
370 浏览

python - asyncpg 异常 DataError 查询参数的输入无效

我的模型

我的观点

当被问及我得到错误

我想使用 sqlalchemy 编写查询。但是,我在使用 Geometry 字段时遇到了问题。我尝试使用模块重复此func查询sqlalchemy。即使有了它,我也会收到此错误。