问题标签 [shapely]

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 回答
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 投票
6 回答
32783 浏览

python - 修复 Shapely 中的无效多边形

如果多边形的任何线段相交,包括共线的线段,Shapely 将多边形定义为无效。许多软件包将创建一个带有“切口”的区域或区域,如下所示,它具有共线段:

在此处输入图像描述

自然地,切口可以在 Shapely 中本地实现,或者这个相同的几何可以实现为两个有效的多边形,但是如果我只有上面显示的点列表,是否有一个容易“修复”的方法(从这个创建有效的几何点列表)?

0 投票
2 回答
2871 浏览

python - 身材匀称的 polygon_.buffer(0) “失去”了一半我的领结

我在网上看到 buffer(0) 应该“修复”蝴蝶结。Shapely 找到了领结的交点,但只保留了右上角的部分。寻找解决方法,我尝试颠倒我的观点的顺序。令人惊讶的是(对我来说),领结的右上部分仍然保留着。我不明白。任何帮助表示赞赏。

我想将整个领结保留为两个三角形(或一个六边形多边形——两者都有用)。寻找解决此“问题”的方法。

经过思考,我可以理解为什么领结与明星的待遇不同,但我有兴趣找到解决方法。

0 投票
1 回答
7815 浏览

python - 创建 Shapely 多边形的数据框会给出“ValueError:LinearRing 必须至少有 3 个坐标元组”

我想创建一个中国省级人口的热图,我在这里找到了类似问题的指南。

尽管我不得不承认我并没有完全理解它们,但通过示例代码我没有问题。但是,当我试图通过使用中国的 shapefile 来模拟示例时,代码运行正常,直到以下

它会产生一个错误,上面写着

有人可以向我解释导致此错误的原因吗?

0 投票
1 回答
1148 浏览

python - shapely 和 geos 打破距离法

我在匀称地使用距离方法时遇到问题(我怀疑与 geos 包不兼容)。

以下代码:

创建以下错误:

我正在运行 CentOS 6、python 2.6、geos 3.4.2(尽管它创建了从 libgeos_c 到 1.8.2 的链接)

谷歌搜索它产生了一些并没有真正帮助我的旧帖子。

谢谢,拉兹

0 投票
1 回答
10863 浏览

python - 确定 Shapely 点是否在 LineString/MultiLineString 内

我正在尝试使用 Shapely 的within函数对 LineString 和 Point 文件进行“空间连接”(仅供参考,点文件是使用 上的interpolate函数生成的LineString)。问题是 - 没有返回任何内容。

在哪里:

我错过了什么?

0 投票
2 回答
202 浏览

python - 无效的语法 - 匀称的空间操作

我正在尝试使用 Shapely 的'.within'函数......只是一个简单的检查,我无法解决这个语法错误。

我只是想重新创建我在文档中看到的示例。

代码是:

回报:

0 投票
4 回答
9090 浏览

python - shapely 和 matplotlib 多边形点在地理位置上不准确

我正在使用 matplotlib 和 shapely 测试多边形中的点函数。

这是一张包含百慕大三角形多边形的地图。

Google maps的 point-in-polygon 函数清楚地显示testingPointtestingPoint2在多边形内,这是一个正确的结果。

如果我在matplotlib和 shapely 中测试这两个点,则只有 point2 通过测试。

匀称地显示与 matplotlib 相同的结果。

这里到底发生了什么?谷歌的算法比那两个更好吗?

谢谢

0 投票
2 回答
2758 浏览

python - 获取 Point 任一侧 LineString 上的顶点

我有一个匀称的LineString,并定义了一个匀称的Point,它位于LineString.

如何找到LineString位于点两侧的顶点?(将线一分为二)

0 投票
2 回答
1769 浏览

python - 为绘图排序多边形坐标

我有一个由许多单元格组成的模型网格,我想在matplotlib basemap.

使用,我首先投影点,然后使用'类pyproj创建多边形以从中提取网格的外部坐标。然后我将它们恢复为 WGS84 以传递给我的绘图函数:shapely.geometryPolygon

然后,使用该matplotlib.basemap方法,我将 WSG84 坐标投影到地图投影(本例中为 nplaea)和

尝试这样做时,我得到了一个纵横交错的图案,我认为它必须对我提供给多边形函数的坐标进行排序。

我认为这与我如何提取外部坐标有关,或者只是在创建要绘制的最终多边形时坐标列表的排序有关。

如果这是问题,是否有一种巧妙的方法可以正确订购这些?

绘制的多边形 在此处输入图像描述

特写 在此处输入图像描述