Transform Rotate

Rotates any geojson Feature or Geometry of a specified angle, around its centroid or a given pivot point; all rotations follow the right-hand rule.

Example

import json
from turfpy.transformation import transform_rotate
from geojson import Polygon, Feature
f = Feature(geometry=Polygon([[[0,29],[3.5,29],[2.5,32],[0,29]]]))
pivot = [0, 25]
tr = transform_rotate(f, 10, pivot)
print(json.dumps(tr, indent=2, sort_keys=True))
{
  "geometry": {
    "coordinates": [
      [
        [
          0.779582,
          28.939231
        ],
        [
          4.215029,
          28.397872
        ],
        [
          3.837175,
          31.512519
        ],
        [
          0.779582,
          28.939231
        ]
      ]
    ],
    "type": "Polygon"
  },
  "properties": {},
  "type": "Feature"
}

Interactive Example

from ipyleaflet import Map, GeoJSON, LayersControl

original = GeoJSON(name='Original', data=f)

rotated = GeoJSON(name='Rotated', data=transform_rotate(f, 10, pivot), style={'color': 'red'})

m = Map(center=[30.18519925274955, 2.939529418945313], zoom=5)

m.add_layer(original)
m.add_layer(rotated)

control = LayersControl(position='topright')
m.add_control(control)
m