def evaluateLineStringPlane(geom, label='Airplane'):
ring = ogr.Geometry(ogr.wkbLinearRing)
for i in range(0, geom.GetPointCount()):
# GetPoint returns a tuple not a Geometry
pt = geom.GetPoint(i)
ring.AddPoint(pt[0], pt[1])
pt = geom.GetPoint(0)
ring.AddPoint(pt[0], pt[1])
poly = ogr.Geometry(ogr.wkbPolygon)
poly.AddGeometry(ring)
transform_WGS84_To_UTM, transform_UTM_To_WGS84, utm_cs = gT.createUTMTransform(geom)
geom.Transform(transform_WGS84_To_UTM)
pt0 = geom.GetPoint(0) # Tail
pt1 = geom.GetPoint(1) # Wing
pt2 = geom.GetPoint(2) # Nose
pt3 = geom.GetPoint(3) # Wing
Length = math.sqrt((pt2[0]-pt0[0])**2 + (pt2[1]-pt0[1])**2)
Width = math.sqrt((pt3[0] - pt1[0])**2 + (pt3[1] - pt1[1])**2)
Aspect = Length/Width
Direction = (math.atan2(pt2[0]-pt0[0], pt2[1]-pt0[1])*180/math.pi) % 360
geom.Transform(transform_UTM_To_WGS84)
return [poly, Length, Width, Aspect, Direction]
评论列表
文章目录