def __get_flyzone(cls, data, frame):
"""
Deserializes flight boundary data into a FlyZoneArray message.
Args:
data: List of dictionaries.
frame: Frame id for the boundaries.
Returns:
A FlyzoneArray message type which contains an array of FlyZone
messages, which contains a polygon for the boundary, a max
altitude and a min altitude.
"""
# Generate header for all zones.
header = Header()
header.stamp = rospy.get_rostime()
header.frame_id = frame
flyzones = FlyZoneArray()
for zone in data:
flyzone = FlyZone()
flyzone.zone.header = header
flyzone.max_alt = feet_to_meters(zone["altitude_msl_max"])
flyzone.min_alt = feet_to_meters(zone["altitude_msl_min"])
# Change boundary points to ros message of type polygon.
for waypoint in zone["boundary_pts"]:
point = GeoPoint()
point.latitude = waypoint["latitude"]
point.longitude = waypoint["longitude"]
flyzone.zone.polygon.points.append(point)
flyzones.flyzones.append(flyzone)
return flyzones
评论列表
文章目录