我想将Shapely用于我的计算几何项目。为此,我需要能够可视化和显示多边形、线条和其他几何对象。我尝试为此使用Matplotlib,但遇到了问题。fromshapely.geometryimportPolygonimportmatplotlib.pyplotaspltpolygon1=Polygon([(0,5),(1,1),(3,0),])plt.plot(polygon1)plt.show()我希望能够在绘图中显示此多边形。我将如何更改我的代码来执行此操作? 最佳答案 使用:importmatplotlib.pyplotasp
我尝试合并两个Shapely我的Python项目中的对象。有一种手册描述了Shapely的某些功能,例如cascaded_union()但我只适用于多边形。shapely.ops.unary_union()方法应该也适用于其他几何图形,但我无法让它工作。简而言之:如何合并2个LinearRing对象? 最佳答案 其实我自己解决了这个问题。p1=Polygon(ring.coords)p2=Polygon(ring2.coords)用我的戒指制作多边形。然后我用这些多边形创建一个数组。将它们与cascaded_union合并并从新的多
我正在使用matplotlib和shapely测试多边形中的点函数。这是一个map包含一个百慕大三角多边形。Googlemap的多边形内点函数清楚地显示testingPoint和testingPoint2在多边形内部,这是一个正确的结果。如果我在matplotlib和shapely中测试这两个点,只有point2通过测试。In[1]:frommatplotlib.pathimportPathIn[2]:p=Path([[25.774252,-80.190262],[18.466465,-66.118292],[32.321384,-64.75737]])In[3]:p1=[27.2
我有一组七个重叠的圆和椭圆,我试图将它们组合成一个形状,但是当我运行cascaded_union()时,我得到了错误:ValueError:NoShapelygeometrycanbecreatedfromnullvalue这是我到目前为止所写的内容:importnumpyasnpimportmatplotlib.pyplotaspltfromshapely.geometryimportPolygonfromshapely.opsimportcascaded_unionx=[-1.86203523,-1.91255406,-2.03575331,-2.16247874,-2.22159
我试图用两条线将shapely.geometry.Polygon实例分成两部分。例如,在下面的代码中,polygon是一个环,如果我们用line1和line2切割它,我们应该得到两个部分环,一个带270度,一个带90度。是否有一种干净的方法来做到这一点?fromshapely.geometryimportPoint,LineString,Polygonpolygon=Point(0,0).buffer(2).difference(Point(0,0).buffer(1))line1=LineString([(0,0),(3,3)])line2=LineString([(0,0),(3,
在shapely中,可以通过LineString对象构建多边形(polygon),但是只能是一条线生成一个多边形,如果想要多条线生成一个多边形可以使用shapely.ops.polygonize方法。shapely.ops.polygonize(lines)输入lines(线的集合),可以是类似线条的任何对象。 可以是[((0,0),(1,1)),((0,0),(0,1)),((0,1),(1,1))]、[LineString1,LineString2,LineString3]这种形式。输出多边形的的迭代器(Collection)-通过加list可以看到具体的对象举例:有多条直线集合li
在shapely中,可以通过LineString对象构建多边形(polygon),但是只能是一条线生成一个多边形,如果想要多条线生成一个多边形可以使用shapely.ops.polygonize方法。shapely.ops.polygonize(lines)输入lines(线的集合),可以是类似线条的任何对象。 可以是[((0,0),(1,1)),((0,0),(0,1)),((0,1),(1,1))]、[LineString1,LineString2,LineString3]这种形式。输出多边形的的迭代器(Collection)-通过加list可以看到具体的对象举例:有多条直线集合li
假设我有以下多边形和点:>>>poly=Polygon([(0,0),(2,8),(14,10),(6,1)])>>>point=Point(12,4)我可以计算点到多边形的距离...>>>dist=point.distance(poly)>>>print(dist)2.49136439561...但我想知道最短距离测量到的多边形边界上点的坐标。我最初的方法是通过点到多边形的距离来缓冲该点,并找到该圆与多边形相切的点:>>>buff=point.buffer(dist)但是,我不确定如何计算这一点。这两个多边形不相交,所以list(poly.intersection(buff))不会给
这个问题在这里已经有了答案:Couldnotfindlibrarygeos_corloadanyofitsvariants(11个回答)关闭1年前.我是使用python在map上制作/绘图的新手,一直在尝试按照这篇博文生成世界地图(http://sciblogs.co.nz/seeing-data/2011/08/12/plotting-geographic-data-on-a-world-map-with-python/)。在这里遇到了一些事情:安装Basemap(用于在地理投影上绘制数据的Matplotlib扩展)。frommpl_toolkits.basemapimportBas
Shapely将多边形定义为无效,如果它的任何线段相交,包括共线的线段。许多软件包会创建一个带有“切口”的区域或区域,如下所示,它具有共线段:>>>pp=Polygon([(0,0),(0,3),(3,3),(3,0),(2,0),(2,2),(1,2),(1,1),(2,1),(2,0),(0,0)])>>>pp.is_validWARNING:shapely.geos:Self-intersectionatornearpoint20False当然,切口可以在Shapely中本地实现,或者同样的几何图形可以实现为两个有效的多边形,但如果我只有上面显示的点列表,是否有一个容易“修复”的