问题标签 [geoalchemy]

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 回答
487 浏览

python - SQLAlchemy \ GeoAlchemy 支持 PostGIS 几何数据类型

在 ORM 中,我希望能够做到这一点:

相反,我看到访问我的湖点的唯一方法是通过一个相当复杂的代码怪物:

虽然这个循环让我得到了我想要的坐标,但我不知道如何实现一些返回这个实例的海岸的 Lake.get_coast()。

我也放弃了对带有 MULTIPOLYGONs 的 ""Lake""s 实施相同的方法,因为嵌套到要点对于 postgis 来说太多了(至少我是这样阅读错误消息的)

我是 postgis、gis、python 和 sqla 的新手,但在两天的谷歌搜索中,我在 SQL-Alchemy 2 中找不到任何看起来像 ORM 的东西,但只有一些 SQL 辅助函数(postgis)来解析 WKB,但只能在数据库。我需要一些额外的框架吗?我看到了 gdal、ogr、fiona,但我觉得看错了方向。是否有一些使用结构良好的 SQL-Alchemy2 的开源项目?实体、DAO 等等?除了这个极简主义的例子,你如何实际使用这个怪物?

0 投票
1 回答
761 浏览

postgresql - 如何在 SQLAlchemy 中使用复合数据类型(例如 geomval)?

我正在尝试使用 SQLAlchemy(0.8)/GeoAlchemy2(0.2.1) 复制嵌套的原始 PostGreSQL/PostGIS 栅格查询,但不知道如何访问geomval数据类型的组件。它是一种返回“geom”和“val”的复合数据类型。

这是有效的原始查询:

我目前正在使用的 SQLAlchemy 查询:

然后我想在子查询中访问它,如下所示:

但是这种语法不起作用,或者我不会发布这个问题;)。有人有想法吗?谢谢!

0 投票
2 回答
3745 浏览

python - GeoAlchemy2 存储点和查询结果

GeoAlchemy2 上的文档似乎并不完整(与以前的版本相比)。

我有一个模型:

我想存储经纬度数据,我试图将其保存在上述模型中,例如

这给了我错误:

任何人都能够阐明我在这里出错的地方吗?

同样在这个主题上,我将如何进行查询说..

显示最近的 20 个用户:

就像是?

0 投票
1 回答
725 浏览

python - GeoAlchemy pg_function.geojson 不能用 json.loads 解码

鉴于此功能:

features是 SQLAlchemy 对象的列表

template只是一个字典,表示向用户显示内容的模板

我想返回一个如下所示的 GeoJSON FeatureCollection:

我可以把它打印出来:

但我最终得到的是一个错误,内容如下:

我尝试使用更改类型,str()但这只会导致:

我用 GeoAlchemy (pg_functions.geojson) 和 GeoAlchemy2 (ST_AsGeoJSON) 都试过了,结果相同。我知道我很接近,但由于某种原因,我没有正确传递标量或其他东西。

任何人都知道我做错了什么?

0 投票
0 回答
530 浏览

python - 如何在 SqlAlchemy 和 GeoAlchemy2 中创建 viewonly 字段?

我正在尝试使用 SqlAlchemy 0.8.4 和 GeoAlchemy2 0.2.2 动态填充字段。目标是在从数据库中读取设施时根据设施的位置将区域分配给设施。代码如下所示:

但这给了我以下错误:

ArgumentError:在关系 Facility.district 上找不到主连接条件“ST_Contains(districts.geog, facility.geog)”的任何相关外键列。确保引用列与 ForeignKey 或 ForeignKeyConstraint 相关联,或者在连接条件中使用 foreign() 注释进行注释

我真的很想避免这些类之间的外键关系,因为地区在不断变化,但想获得一个具有地区集的设施,而无需再次查询数据库。

我应该如何解决这个问题?

0 投票
2 回答
2227 浏览

python - Geoalchemy2 query all users within X meteres

I have an app that takes an address string, sends it to Google Maps API and gets lat/long co-ordinates, I then want to show the all users within X meteres of this point (there lat/long is stored in my database), I then want to filter the result to only show users with certain pets

So first off, I have my Models

I get my lat/long from Google API and store it in my database, so from the address string "London England" I get

this stores in my database like:

Now that all works fine, now reading the Geoalchemy2 docs I cant seem to find an exmaple query to resolve my problem.

What I want to pass is another set of lat/long co-ordinates to Geoalchemy2 and then return the nearest say 10 users. Whilst querying this I will also filter only users that have certain pets (this isn't essential for my query to work, but I wanted to show what the query will actually do in its entirety).

I don't really like to answer a question without providing a sample query, but I really don't know what functions I should be using to achieve my required result.

I am guessing I will need to use "ST_DWithin" or "ST_DFullyWithin" but I cannot find a full example of either function. Thank's.

So I know have a working query

Which generates the following SQL

Now this always returns all my users, regardless of the distance variable, so I am guessing something is not quite, right, but I cannot work out why.

0 投票
1 回答
976 浏览

python - GeoAlchemy2:找到一组不与单独集合相交的几何项目

我有一个名为 postgis 的数据库表,它使用 geoalchemy2/sqlalchemytasks映射到一个 python 类- 每个条目都有一个 MultiPolygon和一个整数。总的来说,我的数据库中的条目涵盖了一个地理区域。我想选择一个 state=0 的随机条目,它在地理上与 state=1 的任何条目都不相邻Taskgeometrystate

这是选择 state=0 的随机条目的代码:

到目前为止,一切都很好。但是现在,如何确保它们不与另一组条目相邻呢?

Geoalchemy 有一个功能ST_Union可以统一几何,ST_Disjoint可以检测它们是否相交。所以看来我应该能够选择 state=1 的项目,将它们合并成一个几何图形,然后过滤掉我的原始查询(上图),只保留与其不相交的项目。但我找不到在地球炼金术中表达这一点的方法。这是我尝试的一种方法:

它会产生如下错误:

0 投票
1 回答
2168 浏览

postgresql - 如何从 IPython Notebook 中查询存储的 PostGIS Raster 数据

测试数据

目标三重:

  1. raster2pgsql使用QGIS将栅格加载到 PostGIS 中并在其中进行可视化
  2. 在我的 IPython Notebook 中连接到 PostGIS 并将栅格加载到 NumPy 数组中
  3. 在我的 IPyhton Notebook 中,使用 Pandas 加载一个像素的时间序列,其中存储在 PostGIS 中的不同时间步长

到目前为止,我已经设法使用raster2pgsql命令将一张光栅图像放入 PostGIS Raster 中,并使用 DB Manager 在 QGIS 中将其可视化:

但是如何从 IPython Notebook 中访问/查询这个栅格呢?

我找到了这个关于 SQLALchemy 和 GeoAlchemy2 的演示文稿。并且提到它也支持 PostGIS Raster。这似乎很有趣!但是使用文档我看不到如何将其应用于栅格数据

我想我可以使用以下代码 where 和 连接到我的postgres=userPostGISpassword=admin数据库database=rastertest

但是然后..任何建议都非常感谢。

0 投票
2 回答
980 浏览

python - 几何场 (LON/LAT) 的 AdminModelConvertor

我想为 Flask-Admin 创建一个视图以在几何字段中输入坐标。如何创建两个文本字段并将它们转换为几何对象?

这是我迄今为止尝试过的(除了不可数的其他事情)

POI 对象如下所示:

非常感谢你的帮助!

0 投票
1 回答
1738 浏览

postgresql - 如何为点几何创建地球炼金术表达式?

我有一张经纬度的表,我不想存储几何图形。相反,我存储纬度和经度。

如何使用位置表达式创建基于点的查询?基本上它应该返回点。应该将其转换为 SQL 表达式,如“.....ST_Point(home.latitude, home.longitude).....”

geoalchemy 中没有 func.ST_Point 吗?还是我错过了什么?如果我不写表达式显然我得到

代码:

我正在使用 sqlalchemy、Geoalchmey2 和 postgis、postgres、金字塔。