# Type-Definitions

The following type definitions are available globally.
- `


  ### [GMSFeatureType](https://developers.google.com/maps/documentation/ios-sdk/reference/objc/Type-Definitions/GMSFeatureType)


  ` Identifiers for feature types of data-driven styling features.

  #### Declaration

  Swift

      struct FeatureType : _ObjectiveCBridgeable, Hashable, Equatable, _SwiftNewtypeWrapper, RawRepresentable, @unchecked Sendable

  Objective-C

      typedef NSString *GMSFeatureType

- `


  ### [GMSReverseGeocodeCallback](https://developers.google.com/maps/documentation/ios-sdk/reference/objc/Type-Definitions/GMSReverseGeocodeCallback)


  ` Handler that reports a reverse geocoding response, or error.

  @related GMSGeocoder

  #### Declaration

  Swift

      typealias GMSReverseGeocodeCallback = (https://developers.google.com/maps/documentation/ios-sdk/reference/objc/Classes/GMSReverseGeocodeResponse?, (any Error)?) -> Void

  Objective-C

      typedef void (^GMSReverseGeocodeCallback)(https://developers.google.com/maps/documentation/ios-sdk/reference/objc/Classes/GMSReverseGeocodeResponse *_Nullable,
                                                NSError *_Nullable)

- `


  ### [GMSMapPoint](https://developers.google.com/maps/documentation/ios-sdk/reference/objc/Type-Definitions/GMSMapPoint)


  ` A point on the map. May represent a projected coordinate.

  x is in \[-1, 1\]. The axis direction is normal: y grows towards North, x grows towards East. (0,
  0) is the center of the map.

  See `GMSProject()` and `GMSUnproject()`.

  #### Declaration

  Objective-C

      typedef struct https://developers.google.com/maps/documentation/ios-sdk/reference/objc/Structs/GMSMapPoint https://developers.google.com/maps/documentation/ios-sdk/reference/objc/Structs/GMSMapPoint

- `


  ### [GMSOrientation](https://developers.google.com/maps/documentation/ios-sdk/reference/objc/Type-Definitions/GMSOrientation)


  ` `https://developers.google.com/maps/documentation/ios-sdk/reference/objc/Structs/GMSOrientation` is a tuple of heading and pitch used to control the viewing
  direction of a `https://developers.google.com/maps/documentation/ios-sdk/reference/objc/Classes/GMSPanoramaCamera`.

  #### Declaration

  Objective-C

      typedef struct https://developers.google.com/maps/documentation/ios-sdk/reference/objc/Structs/GMSOrientation https://developers.google.com/maps/documentation/ios-sdk/reference/objc/Structs/GMSOrientation

- `


  ### [GMSPanoramaCallback](https://developers.google.com/maps/documentation/ios-sdk/reference/objc/Type-Definitions/GMSPanoramaCallback)


  ` Callback for when a panorama metadata becomes available.
  If an error occurred, `panorama` is nil and `error` is not nil.
  Otherwise, `panorama` is not nil and `error` is nil.

  @related `https://developers.google.com/maps/documentation/ios-sdk/reference/objc/Classes/GMSPanoramaService`

  #### Declaration

  Swift

      typealias GMSPanoramaCallback = (https://developers.google.com/maps/documentation/ios-sdk/reference/objc/Classes/GMSPanorama?, (any Error)?) -> Void

  Objective-C

      typedef void (^GMSPanoramaCallback)(https://developers.google.com/maps/documentation/ios-sdk/reference/objc/Classes/GMSPanorama *_Nullable, NSError *_Nullable)

- `


  ### [GMSVisibleRegion](https://developers.google.com/maps/documentation/ios-sdk/reference/objc/Type-Definitions/GMSVisibleRegion)


  ` `https://developers.google.com/maps/documentation/ios-sdk/reference/objc/Structs/GMSVisibleRegion` contains the four points defining the polygon that is visible in a map's
  camera.

  This polygon can be a trapezoid instead of a rectangle, because a camera can have tilt. If the
  camera is directly over the center of the camera, the shape is rectangular, but if the camera is
  tilted, the shape will appear to be a trapezoid whose smallest side is closest to the point of
  view.

  #### Declaration

  Objective-C

      typedef struct https://developers.google.com/maps/documentation/ios-sdk/reference/objc/Structs/GMSVisibleRegion https://developers.google.com/maps/documentation/ios-sdk/reference/objc/Structs/GMSVisibleRegion

- `


  ### [GMSTileURLConstructor](https://developers.google.com/maps/documentation/ios-sdk/reference/objc/Type-Definitions/GMSTileURLConstructor)


  ` `GMSTileURLConstructor` is a block taking `x`, `y` and `zoom` and returning an NSURL, or nil to
  indicate no tile for that location.

  @related `https://developers.google.com/maps/documentation/ios-sdk/reference/objc/Classes/GMSURLTileLayer`

  #### Declaration

  Swift

      typealias GMSTileURLConstructor = (UInt, UInt, UInt) -> URL?

  Objective-C

      typedef NSURL *_Nullable (^GMSTileURLConstructor)(NSUInteger, NSUInteger,
                                                        NSUInteger)