问题标签 [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 投票
2 回答
2765 浏览

gis - GeoAlchemy2:获取点的纬度、经度

考虑以下带有几何字段的SQLAalchemy/ ORM:GeoAlchemy2

当我在 PostgreSQL shell 中更新一个项目时:

获取字段:

给出:

这不是一个正确的 WKB - 至少,它不能用Shapely 的loads.

我如何获得该字段的lat/ ?longeom

0 投票
1 回答
1102 浏览

sqlalchemy - 通过 geoalchemy2 和 alembic 使用 postgis 更新数据库时,类型“几何”不允许使用类型修饰符

我用于添加新 postgis 几何点的 alembic 更新脚本如下所示:

当我通过运行脚本时

发生以下错误

我正在使用 postgres 9.1、postgis 1.5、sqlalchemy 1.0.9、geoalchemy2 0.2.6。

0 投票
1 回答
56 浏览

python-2.7 - 如何从 geoalchemy2 查询结果中检索数据?

代码片段

如何从此result对象中检索数据?

0 投票
2 回答
560 浏览

python-2.7 - 安装 ckanext-plugin 扩展后 CKAN 服务器关闭

我正在尝试按照下面列出的分步说明安装 CKAN ckanext-spatial 插件。

http://docs.ckan.org/projects/ckanext-spatial/en/latest/install.html#ubuntu-12-04-postgresql-9-1-and-postgis-1-5

安装和配置后,尝试访问站点主页时出现以下 apache 服务器错误。CKAN 目前无法使用。我需要升级 GeoAlchemy 的版本还是扩展的问题?

mod_wsgi (pid=29881):目标 WSGI 脚本 '/etc/ckan/default/apache.wsgi' 不能作为 Python 模块加载。mod_wsgi (pid=29881):处理 WSGI 脚本“/etc/ckan/default/apache.wsgi”时发生异常。回溯(最后一次调用):文件“/etc/ckan/default/apache.wsgi”,第 10 行,在 application = loadapp('config:%s' % config_filepath) 文件“/usr/lib/ckan/default/ lib/python2.7/site-packages/paste/deploy/loadwsgi.py”,第 247 行,在 loadapp 返回 loadobj(APP, uri, name=name, **kw) 文件“/usr/lib/ckan/default/ lib/python2.7/site-packages/paste/deploy/loadwsgi.py”,第 271 行,在 loadobj global_conf=global_conf) 文件“/usr/lib/ckan/default/lib/python2.7/site-packages/paste /deploy/loadwsgi.py",第 296 行,在 loadcontext global_conf=global_conf) 文件中"import (self.module_name, globals(),globals(), [' name ']) 文件“/usr/lib/ckan/default/src/ckan/ckan/config/middleware.py”,第 26 行,来自 ckan .config.environment import load_environment 文件“/usr/lib/ckan/default/src/ckan/ckan/config/environment.py”,第 17 行,在 import ckan.model 作为模型文件“/usr/lib/ckan/default /src/ckan/ckan/model/ init .py”,第 7 行,在导入 vdm.sqlalchemy 文件“ /usr/lib/ckan/default/lib/python2.7/site-packages/vdm/sqlalchemy/init.py”,第 32 行,从工具导入存储库文件“/usr/lib/ckan/default/lib/python2.7/site-packages/vdm/sqlalchemy/tools.py”,第 33 行,在 raise ValueError(" VDM 仅适用于 SQLAlchemy 版本 0.4 至 0.7,不适用于:%s" % sqav) ValueError:VDM 仅适用于 SQLAlchemy 版本 0.4 至 0.7,不适用于:1.0.12

0 投票
1 回答
539 浏览

sqlalchemy - sqlAlchemy 使用 ST_AsBinary 将几何转换为字节

我有一个 sqlAlchemy 模型,它有一列几何类型,定义如下:

我正在使用 geoalchemy2 模块:

然后我使用 sqlAlchemy ORM 进行查询,一切正常。例如:

数据 = session.query(myModel).filter_by(...)

我的问题是,当我需要获取查询对象的sql语句时,我使用如下代码:

但是geometry类型的列被转换为Byte[],所以得到的sql语句是这样的:

应该怎么做才能避免将几何类型转换为字节类型?

0 投票
0 回答
631 浏览

python - 地球炼金术中的 3D 点2

我在(我认为)geoalchemy2 的 ORM 上遇到了困难。我的模型定义如下:

我后来插入如下:

这给出了以下错误:

0 投票
2 回答
539 浏览

python - 如何使用 GeoAlchemy2 计算 ST_Union?

我有一个多对多的关系,将 OsmAdminUnit(多边形几何)的实例分组到 OsmAdminAgg 实例中。

模型定义本质上是:

现在我正在努力做的是选择属于某个 OsmAdminAgg 的 OsmAdminUnits 并通过应用 GeoAlchemy 的 ST_Union 来合并 polgyons。

选择属于 admin agg 且 id=1 的所有管理单元有效:

但我不明白如何将 ST_Union 应用于该结果。到目前为止,我的方法是:

那么如何获得这些几何图形的并集,并将其作为 GeoJSON 获得呢?

顺便说一句,我正在使用 SQLAlchemy、Flask-SQLAlchemy、Geoalchemy2 在 Flask 上构建它。

0 投票
0 回答
170 浏览

python - 如何使用 SQL 函数与 SQLAlchemy 创建多对多关系?

Geometry我想在具有列的两个模型之间创建关系。例如:

在这个例子中,aProperty可能与许多ServiceAreas 相关联,并且 aServiceArea可能与许多属性相关联。但是,没有可供我用于关系的辅助表——这完全由ST_Contains函数决定。

每当我运行此代码时,我都会收到一个sqlalchemy.exc.ArgumentError异常,告诉我“确保引用列与 ForeignKey 或 ForeignKeyConstraint 相关联,或者在连接条件中使用 foreign() 注释进行注释。”

当我在foreign周围添加ServiceArea.geom(即使它不是外键)时,我收到一条错误消息,提示我“考虑使用 remote() 注释来准确标记连接条件中位于关系远程端的那些元素。”

我尝试过单独使用foreignremote一起使用和(例如,foreign(remote(ServiceArea.geom))remote(foreign(ServiceArea.geom))),但总是得到上述错误之一。我究竟做错了什么?

0 投票
1 回答
359 浏览

python - ng-map 绘图管理器到 GeoAlchemy

我试图让我的应用程序上的用户定义一个“领土”(作为一个多边形)。然后其他人可以查询一个点(经纬度),以确定该点落入谁的领土。我从 GeoAlchemy2 的文档中确定,这可能是这项工作的好工具(我的应用程序目前在开发中,所以我对其他建议持开放态度。我在开发中使用烧瓶、flask-sqlalchemy 和 Sqlite……计划在产品中的 Postgres 上。AngularJS 用于前端)。

我的搜索将我带到了 ng-map,特别是这里看到的绘图管理器指令。https://ngmap.github.io/#/!drawing-manager.html。在修改示例时,我可以访问 google 的 onMapOverlayCompleted 对象。在那里,我看到了一个 latLng 对象,但不确定如何将其转换为可以保存在数据库中的东西。假设我在 JS 中执行此操作,我可以将其转储到 JSON 以发送到我的 Flask API 吗?

谁能指出我如何做到这一点的正确方向?我非常愿意听取更好的想法。

谢谢。

这是该示例中的一些代码:

如何从“e”获取多边形?

0 投票
2 回答
2676 浏览

python - GeoAlchemy2 的 Alembic 迁移引发 NameError:未定义名称“geoalchemy2”

我决定使用 Flask、postgresql 和传单编写一个小型 webapp。我想使用PostGIS扩展器为 postgresql 存储坐标(纬度和经度)。我的烧瓶应用程序使用 Flask-SQLAlchemy、蓝图,尤其是 Flask-Migrate 进行数据库迁移过程。

这是我的数据库模型的摘录:

这是我的 app/ init .py的摘录

在尝试使用特定的扩展器之前,我没有任何问题来调整我的模型。从那时起,迁移工作正常,但升级不起作用(python manage.py db upgrade)。

这是我从网络服务器获得的日志:

我有点迷茫,在这个特定主题上我没有找到太多帮助。关于可能导致此问题的任何想法?