问题标签 [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.
python - 多边形与 Shapely 接触不止一个点
我有一个 Python 中的 Shapely 多边形列表。要找出哪个多边形触摸很容易,请使用该.touches()
方法。但是,我需要True
仅当多边形共享多个点(换句话说共享边界)时才返回的东西。让我举例说明:
在这种情况下,多边形 0 和 1 共享两个点(整个边界)。多边形 1 和 2 仅共享一个点。我正在寻找的是一个函数,它会给我True
, False
,False
在上面的例子中或者只是返回触摸点数量的东西,然后我可以自己做剩下的逻辑。
当然,任何不涉及手动迭代所有点的解决方案都是最佳的 - 如果我需要这样做,它有点违背了使用 Shapely 的目的:-)
python - Python:将 Shapely 对象导出到 DXF 文件
如何将来自空间操作的结果(例如使用Python包的buffer
点上的函数)导出到DXF文件?顺便说一句,这次谷歌搜索没有太大帮助。Shapely
python - 匀称的相交:平行平面
我正在确定两个 3D 对象(三角形面)之间的关系(边界/内部交叉点),并偶然发现Shapely,我有兴趣使用它而不是实现我自己的点/线段/射线/三角形交叉函数。
但是,我遇到了以下问题:
我似乎遇到的问题是这两个多边形在它们的 2D 正交投影(相同的三角形)中是相等的,但是在不同的平面上(一个在 Z = 1,另一个在 Z = 0),但 Shapely 说他们是相等和相交。
是否有一些我缺少的魔法可以在 3 维中进行匀称的思考?我一直在谷歌搜索,但到目前为止我看到的每个例子都只是二维的。
python - 安装 Shapely 时找不到 OSError geos_c
我是使用 python 在地图上制作/绘图的新手,一直在尝试按照这篇博文生成世界地图 (http://sciblogs.co.nz/seeing-data/2011/08/12/plotting-geographic-带有python的世界地图上的数据/)。在这里遇到了一些事情:
安装 Basemap(用于在地理投影上绘制数据的 Matplotlib 扩展)。
/li>安装Shapely,但出现如下错误[1]:
然后我进入 geos.py 文件并将 geos.dll 的所有引用更改为 geos_c.dll,按照此处链接的建议:http: //osgeo-org.1560.n6.nabble.com/osgeo4w-258- python-shapely-python-2-7-2-td4336816.html 的问题
但是,会发生相同的错误 [1]。
我正在使用 Python 2.7.1 和 Mac OS 10.7.4。如果我可以提供更多信息,请告诉我,非常感谢社区提供的任何指导!谢谢!
[1]
python - Shapely 中的多边形相交错误:“shapely.geos.TopologicalError:操作'GEOSIntersection_r'产生了一个空几何”
我一直在尝试调试此问题,但无法这样做。我试图找到两个Polygon
对象的交集。它大部分时间都有效,但对于以下情况,它会引发以下异常:
代码如下。
由于它打印了两个多边形的面积,我假设多边形的形成是正确的。我还(不知何故)打印了第一个多边形以确保它确实是一个简单的多边形。
谁能解释一下为什么我会得到这个例外?
编辑:我打印了 p1.is_valid ,结果是假的。这里有一些解释。搜索字符串is_valid
。它说
一个有效的多边形可能不具有任何重叠的外环或内环。
有人可以解释一下这意味着什么,是否有可能的解决方法?顺便说一句,我还注意到,如果我从 中删除最后一个坐标poly1
,则整个过程都有效。也许整个坐标列表使多边形变得复杂。
python - 使用 Shapely 绘制椭圆
我正在将Shapely集成到我的代码中,并且我必须处理几种不同类型的几何对象。线、多边形和线串满足了我的大部分需求,但我需要使用椭圆。有没有办法通过边界框或半轴在 Shapely 中创建椭圆,而不必将椭圆离散成线?
python - Windows 64 上的 Python、GEOS 和 Shapely
当尝试在我的 Windows 64 位计算机上安装 Shapely 时,我无法让 GEOS 库工作。
到目前为止,我已经运行了安装 GDAL 的 OSGeo4W 安装程序(我相信 geos 库包含在该软件包中)。之后,我检查并在我的C:\OSGeo4W\bin
目录中有 geos_c.dll,但要么我错过了一些配置步骤,要么该库不起作用。
我需要 Shapely 才能工作,所以我pip install shapely
在安装 GDAL 后也运行了,它显然可以工作(尽管它找不到 GEOS 的 C 库)。
在我的代码中,我可以导入 Shapely,但是当我尝试使用它时,我收到一条错误消息,告诉我"geos.dll"
找不到。
对此的任何帮助将不胜感激。谢谢!
python - GPS定位与Python,geopy,匀称
我正在尝试处理以下场景:
- 从谷歌地球获取多边形坐标
使用 Shapely 获得界限:
我得到 2 个坐标,它们是我的图形顶部的 2 个边界点。
用geopy获取距离
现在我被困住了......试图弄清楚:
- 如何找到其他 2 个边界点(在底部)
- 如何检测用户是否从任何一侧靠近(例如 3 米)多边形?(左,右,上,下)。在这种情况下,我不仅需要知道边缘边界点,还需要知道左、右、上和下的所有边界点?我可以计算用户位置和多边形之间的距离,但是从多边形中动态取什么点呢?我可以为此使用现有的库,例如 geopy 和 Shapely 吗?
python - 如何合并 2 个 Shapely 对象?
我尝试在我的 Python 项目中合并两个Shapely对象。有一种手册描述了 Shapely 的一些特性,例如cascaded_union()
但我只适用于多边形。该shapely.ops.unary_union()
方法也应该适用于其他几何形状,但我无法让它工作。
简而言之:如何合并 2 个 LinearRing 对象?
python - 在 Shapely 中向现有多边形添加新点
如何修改现有的多边形?首先,我想在它的外部添加一个点。
poly = Polygon([(0, 0), (1, 1), (1, 0)])
我一直在寻找这样的东西:
poly.append_at(idx=3, Point(1, -1))
但我找不到任何类似的方法来做到这一点。