コードを見たら、ロードが完了する前に「myOverView」を定義しようとしているのが間違えていますね。
Ajax API ローダーの場合は、「google.setOnLoadCallback(initialize);」でコールバックが
実行されるまで、APIの読み込みが完了しません。
しかし非同期でロードされるため、コードとしてはその先を実行してしまいます。
そのため、「google.maps.OverlayViewがない」というエラーになります。
(添付図参照)
なので、Ajax APIローダーを使って実行したいなら、initialize()関数が実行されてから、
30~59行目の「myOverView」が実行されるように工夫しなくてはりませんよ。