function OverlayView(props, context) {
    ;(0, _classCallCheck3.default)(this, OverlayView)

    var _this = (0, _possibleConstructorReturn3.default)(
      this,
      (
        OverlayView.__proto__ || (0, _getPrototypeOf2.default)(OverlayView)
      ).call(this, props, context)
    )

    var overlayView = new google.maps.OverlayView()
    // You must implement three methods: onAdd(), draw(), and onRemove().
    overlayView.onAdd = (0, _bind3.default)(_this.onAdd, _this)
    overlayView.draw = (0, _bind3.default)(_this.draw, _this)
    overlayView.onRemove = (0, _bind3.default)(_this.onRemove, _this)
    _this.onPositionElement = (0, _bind3.default)(
      _this.onPositionElement,
      _this
    )
    // You must call setMap() with a valid Map object to trigger the call to
    // the onAdd() method and setMap(null) in order to trigger the onRemove() method.
    overlayView.setMap(_this.context[_constants.MAP])
    _this.state = (0, _defineProperty3.default)(
      {},
      _constants.OVERLAY_VIEW,
      overlayView
    )
    return _this
  }
A wrapper around `google.maps.OverlayView`

@see https://developers.google.com/maps/documentation/javascript/3.exp/reference#OverlayView