当前位置: 首页 > 知识库问答 >
问题:

如何从空间多边形获取坐标

欧阳炜
2023-03-14

我使用以下方法从拉多边形中获取多边形:

x<- ogrListLayers(file_map)
shape=readOGR(file_map, layer=x) #will load the shapefile to your dataset.
plot(shape)
polygon<- drawPoly()

但是,我正在尝试从多边形获取坐标,但我不能:

poligon@polygons[1]类“Polygons”Slot“Polygon”的对象:[1]类“多边形”Slot”labpt“的对象:[1]-46.37327-23.91955

Slot "area":
[1] 0.09747001

Slot "hole":
[1] FALSE

Slot "ringDir":
[1] 1

Slot "coords":
           [,1]      [,2]
 [1,] -46.20830 -23.73089
 [2,] -46.20089 -23.73691
 [3,] -46.19842 -23.74595
 [4,] -46.20336 -23.74670
 [5,] -46.20995 -23.76853
 [6,] -46.22313 -23.79338
 [7,] -46.20665 -23.79488
 [8,] -46.20171 -23.80467
 [9,] -46.20254 -23.82801
[10,] -46.21489 -23.84683
[11,] -46.19348 -23.84608
[12,] -46.17618 -23.87469
[13,] -46.11853 -23.84834
[14,] -46.12182 -23.86942
[15,] -46.14406 -23.90481

提前致谢

共有2个答案

公西宏毅
2023-03-14

如果你加一个MWE会有帮助。这里有一个:

polygon = "POLYGON((186.547856450189 -46.4485209972227,182.523886136587 -87.3045772259105,170.606614118262 -126.59055812607,151.254014475596 -162.79672548354,125.209796759794 -194.531696591426,93.4748256519081 -220.575914307228,65.3272038227373 -235.621131625452,36.2687622716732 -244.435913500765,-9.05803921416017 -248.900213788796,-54.3848406999935 -244.435913500765,-97.9697586242894 -231.214573193132,-138.137849033921 -209.744281559306,-173.34547474097 -180.850129866096,-202.239626434179 -145.642504159047,-221.510885247941 -109.588514788964,-228.270643805406 -87.3045772259111,-232.294614119009 -46.4485209972234,-228.270643805406 -5.59246476853568,-216.353371787081 33.6935161316239,-197.000772144416 69.8996834890942,-170.956554428614 101.63465459698,-139.221583320728 127.678872312782,-103.015415963258 147.031471955448,-63.7294350630982 158.948743973773,-22.8733788344104 162.972714287376,17.9826773942774 158.948743973774,57.2686582944371 147.031471955449,93.4748256519074 127.678872312783,125.209796759793 101.634654596981,151.254014475596 69.8996834890953,170.606614118262 33.6935161316251,182.523886136587 -5.59246476853451,186.547856450189 -46.4485209972227))"

我不知道为什么这如此困难,但在这里你去:

polygon <- lapply(polygon, FUN = function(x) readWKT(x))

poly1 <- sapply(polygon, FUN=function(x) x@polygons)
poly2 <- sapply(poly1, FUN=function(x) x@Polygons)
poly3 <- lapply(poly2, FUN=function(x) x@coords)
plot(poly3[[1]])
逄岳
2023-03-14

嗯,我发现函数<code>单击poly</code>并使用:

polygon <- clickpoly(add = TRUE, col = 2, lwd = 2)

并使用:

poligon$bdry[[1]][1]
poligon$bdry[[1]][2]

获取多边形中的x,y点

 类似资料:
  • 我试图从顶点位置创建一组多边形,保存在X,Y格式。 下面是我的数据的一个例子——每行代表一个多边形的顶点。多边形是正方形 我正在使用,因此我的数据需要在列表中。所以我创建了一个循环来尝试从矩阵中将我的数据转换为列表格式。 我创建了一个循环,遵循我在这个网站上的其他一些问题中找到的代码。我突破了每一步,试图理解为什么我只有一个多边形作为输出,即使我有2组点。 你能帮我理解我如何调整代码写出两个多边形

  • 我有一个“SpatialPolygons”对象,我想在@hole==FALSE处对多边形进行子集,并创建一个新对象。 使用下面的代码,一次可以预测得到1个多边形(如果@hole==TRUE,则没有),但我无法从对象中分割多个多边形。 我认为我的问题在于我不知道如何“一般”引用第二个列表,即从列表(Polygon)中获取项目,其中@孔==FALSE。将第二个[[]]留空不起作用。 附言:抱歉,没有可

  • 我有一个多边形的形状文件,我想用它来将光栅值提取到数据帧中。所以我在下面的代码中这样做。 这为我提供了一个由两列组成的数据框:每个多边形的数字ID和关联的提取光栅值。现在,我想为每个提取的光栅值添加x,y坐标。我已经看到对点形状文件执行此操作,但我不确定如何将其应用于多边形形状文件几何体。

  • 我有一些关于点为双类型的多边形的问题...我要做的是,给定点,创建多边形,然后测试1个具体点是否在多边形内。 所以我知道在Java中有一个类,叫做多边形,用得像这样:(三角形) 但我的“多边形”必须是“双”类型,而不是“int”(简单示例) 在我的项目中,我真的不需要在小程序或类似物上绘制它,我只需要计算点是否在里面。 所以我的问题是: 有没有什么方法可以用双坐标来处理多边形,可以计算这个点(双坐

  • 问题内容: 我正在用WebGL构建桌游。该板可以旋转/缩放。我需要一种将对画布元素(x,y)的单击转换为3D空间(x,y,z)中相关点的方法。最终结果是我想知道(x,y,z)坐标,该坐标包含接触最接近用户的对象的点。例如,用户单击一块,您想象一条射线穿过3D空间同时穿过该块和游戏板,但是我希望该块的(x,y,z)坐标位于原点感动。 我觉得这肯定是一个非常普遍的问题,但是我似乎无法在Google中找