# CompassControl

    @MainActor
    @preconcurrency
    struct CompassControl

    extension CompassControl : MapControl, Sendable, SendableMetatype, View

A control that displays a compass which rotates with the map's current camera heading,
and re-orients the map to face north when tapped.

Add a compass to the map using the `mapControls` modifier:

    Map(mode: .hybrid)
      .mapControls {
        CompassControl()
      }

- `


  ### [Body](https://developers.google.com/maps/documentation/maps-3d/ios-sdk/reference/Structs/CompassControl#/s:12GoogleMaps3D14CompassControlV4Bodya)


  ` The type of view representing the body of this view.

  When you create a custom view, Swift infers this type from your
  implementation of the required `View/body-swift.property` property.

  #### Declaration

  Swift

      typealias Body = some View

- `


  ### [body](https://developers.google.com/maps/documentation/maps-3d/ios-sdk/reference/Structs/CompassControl#/s:12GoogleMaps3D14CompassControlV4bodyQrvp)


  ` The content and behavior of the view.

  When you implement a custom view, you must implement a computed
  `body` property to provide the content for your view. Return a view
  that's composed of built-in views that SwiftUI provides, plus other
  composite views that you've already defined:

      struct MyView: View {
          var body: some View {
              Text("Hello, World!")
          }
      }

  For more information about composing views and a view hierarchy,
  see <doc:Declaring-a-Custom-View>.

  #### Declaration

  Swift

      @MainActor
      @preconcurrency
      var body: some View { get }

- `


  ### [init()](https://developers.google.com/maps/documentation/maps-3d/ios-sdk/reference/Structs/CompassControl#/s:12GoogleMaps3D14CompassControlVACycfc)


  `

  #### Declaration

  Swift

      @MainActor
      @preconcurrency
      init()