function farm_area_generate_rotate_polygon in farmOS 7
Rotate a polygon around an origin.
Parameters
$polygon: A Polygon geometry object.
$origin: An origin point to rotate around.
$angle: The angle of rotation, in degrees.
Return value
\Polygon Returns a Polygon geometry object that has been rotated around an origin.
1 call to farm_area_generate_rotate_polygon()
- farm_area_generate_geometries in modules/
farm/ farm_area/ farm_area_generate/ farm_area_generate.module - Generate geometries within a polygon at a given orientation.
File
- modules/
farm/ farm_area/ farm_area_generate/ farm_area_generate.module, line 505 - Farm area generate module.
Code
function farm_area_generate_rotate_polygon($polygon, $origin, $angle) {
// Load GeoPHP.
geophp_load();
// If the geometry is not a polygon, bail.
if ($polygon
->geometryType() != 'Polygon' || $polygon->components[0]
->geometryType() != 'LineString') {
return $polygon;
}
// Iterate through the polygon's points, and rotate each around the origin.
$linestring = $polygon->components[0];
$new_points = array();
if (!empty($linestring->components)) {
foreach ($linestring->components as $point) {
$new_points[] = farm_area_generate_rotate_point($point, $origin, $angle);
}
}
// Return a new Polygon object.
return new Polygon(array(
new LineString($new_points),
));
}