jjzjj

python - 在 Shapely 中以平面单位(例如平方米)计算多边形面积

我正在使用Python3.4和shapely1.3.2从长/纬度坐标对列表中创建一个多边形对象,我将其转换为众所周知的文本字符串以便解析它们。这样的多边形可能看起来像:POLYGON((-116.90443.371,-116.82343.389,-116.89543.407,-116.90843.375,-116.90443.371))由于shapely不处理任何投影并在笛卡尔空间中实现所有几何对象,因此在该多边形上调用area方法,如下所示:poly.area以平方度为单位给出该多边形的面积。要获得像平方米这样的平面单位的面积,我想我必须使用不同的投影(哪个投影?)来转换多边形的坐标

python - 如何在 python 中获取多边形内的点列表?

我搜索了很多,但找不到我的问题的任何实际答案。我有一个多边形。例如:[(86,52),(85,52),(81,53),(80,52),(79,48),(81,49),(86,53),(85,51),(82,54),(84,54),(83,49),(81,52),(80,50),(81,48),(85,50),(86,54),(85,54),(80,48),(79,50),(85,49),(80,51),(85,53),(82,49),(83,54),(82,53),(84,49),(79,49)]我想获取此边界多边形内所有点的列表。我听说过很多关于多边形三角剖分技术或线性/泛洪/交点/

python - shapefile 和 matplotlib : plot polygon collection of shapefile coordinates

我正在尝试使用python中的matplotlib在世界地图上绘制国家/地区的填充多边形。我有一个包含每个国家/地区边界坐标的shapefile。现在,我想使用matplotlib将这些坐标(针对每个国家/地区)转换为多边形。不使用basemap。不幸的是,这些部分交叉或重叠。是否有解决方法,也许使用点到点的距离..或重新排序? 最佳答案 哈!我发现,如何......我完全忽略了sf.shapes[i].parts信息!然后归结为:#--import--importshapefileimportmatplotlib.pyplotas

python - Polygon.contains 和 Polygon.within 有什么区别?

文档字符串说:Polygon.contains如果几何包含另一个则返回True,否则返回FalsePolygon.within如果几何体在另一个几何体内部则返回True,否则返回False它们有什么不同? 最佳答案 它们是反向关系:A包含B,B在A中。>>>A.contains(B)True>>>B.within(A)True+----------------------------------+|||+----------+|||||||||||||||||||||||B|||||||+----------+||||||A|||+

python - 支持大圆距离和多边形的快速 python GIS 库

我正在寻找python的地理图书馆。我需要能够执行以下操作:使用Great-circledistance获取两点之间的距离(以米为单位)(不是线性距离计算)检查点是否在多边形内每秒执行1和2几千次一开始我看过这篇文章:Pythonmoduleforstoringandqueryinggeographicalcoordinates并开始使用geopy.我遇到了2个问题:Geopy不支持多边形geoPy的CPU使用率很高(计算一个点与相对5000个点之间的距离大约需要140毫秒的CPU)我继续寻找并找到了BestPythonGISlibrary?和https://gis.stackexch

python - 使用 OpenCV 从图像中提取多边形给定坐标

我有以下几点:我想在图像中绘制由这些点定义的多边形,然后提取它。我如何使用OpenCV和python做到这一点? 最佳答案 使用cv2.fillConvexPoly这样您就可以指定一个二维点数组并定义一个mask,该mask将这些点定义的形状填充为mask中的白色。在多边形中定义的点是凸的(因此名称fillConvexPoly)的地方应该发出一些公平的警告。然后我们可以将其转换为bool掩码,并使用它来索引您的图像以提取出您想要的像素。下面的代码生成一个名为mask的数组这将包含要从图像中保存的像素的bool掩码。另外,数组out将

python - 如何用 Python 绘制多边形?

我有以下格式的x、y坐标输入值:[[1,1],[2,1],[2,2],[1,2],[0.5,1.5]]我想画多边形,但我不知道怎么画!谢谢 最佳答案 使用matplotlib.pyplotimportmatplotlib.pyplotaspltcoord=[[1,1],[2,1],[2,2],[1,2],[0.5,1.5]]coord.append(coord[0])#repeatthefirstpointtocreatea'closedloop'xs,ys=zip(*coord)#createlistsofxandyvaluesp

python - 如何在 Shapely 中检查多边形是否为空?

我是Python的新手,所以这个问题的答案可能很简单,但我到处寻找并尝试了很多,但找不到答案。使用Shapely简化多边形可能会产生空多边形。如果多边形为空,我想用一个点替换多边形。可以工作的东西:ifmypolyisempty:mypoly=[(0,0)] 最佳答案 鉴于mypoly是一个有形状的多边形,您可以使用is_empty来检查它是否为空,Shapely内置它来检查是否为空。fromshapely.geometryimportPointifmypoly.is_empty:mypoly=Point(0,0)

python - 从 xyz 坐标查找多边形的面积

我正在尝试使用shapely.geometry.Polygon模块来查找多边形的面积,但它在xy平面上执行所有计算。这对我的一些多边形来说很好,但其他多边形也有z维度,所以它不是我想要的。是否有一个包可以根据xyz坐标给出平面多边形的面积,或者有一个包或算法可以将多边形旋转到xy平面这样我就可以使用shapely.geometry.Polygon().area了?多边形表示为[(x1,y1,z1),(x2,y2,z3),...(xn,yn,zn)]形式的元组列表. 最佳答案 Hereisthederivationofaformula

python - 如何在 geodjango 中使用带有 OpenStreetMap 的 openlayers 显示数据?

我已经使用openlayers运行了geodjango|和OpenStreetMaps使用管理应用程序。现在我想写一些View来显示数据。基本上,我只想向map添加一个点列表(在管理员中看到)。Geodjango似乎使用了一个特殊openlayers.js文件在管理员中做到这一点很神奇。有什么好的方法可以与之交互吗?如何编写View/模板以在打开的街道map窗口中显示geodjango数据,如在管理员中所见?目前,我正在研究openlayers.js文件和api寻找“简单”的解决方案。(我没有js经验,所以这需要一些时间。)目前我能看到的方法是添加以下内容作为模板,并使用django添