AJAX APIでGoogleMapsAPI v3をロードするとOverlayView()がない?

116 views
Skip to first unread message

andoche

unread,
Nov 25, 2009, 1:54:03 AM11/25/09
to Google-Maps-API-Japan
Google AJAX API を使用して、

google.load("maps", "3.x", {"other_params":"sensor=false"});

のように、バージョン3のMapsAPIを呼んでみましたが、
ほとんどのコマンドは問題なかったのですが、
google.maps.OverlayView()を継承してオリジナルのオーバーレイを作ろうとしたら、
エラーがでました。

エラー内容は「google.maps.OverlayViewはコンストラクタではありません」でした。

通常のAPIの
<script type="text/javascript" src="http://maps.google.com/maps/api/js?
sensor=false"></script>
を読み込んで同じソースを使用した時は使えたので、ソースに間違いはないと思います。

まだ対応していないようです……。

Masashi.K

unread,
Nov 25, 2009, 2:36:05 AM11/25/09
to Google-Maps-API-Japan
andocheさん

それはたぶんandocheさんのコードが間違えていると思いますよ。
さきほど確認のためにAJAX API を使ってやってみましたが、普通に使えましたよ。

andoche

unread,
Nov 25, 2009, 4:29:12 AM11/25/09
to Google-Maps-API-Japan
Masashi.Kさん

返信有難うございます。

そうですか……一応下記のURLでアップしてみたのですが、

◆GoogleAJAX API使用
http://www.haijima.asia/gmap/

◆GoogleMapsAPI v3
http://www.haijima.asia/gmap2/

ソースコードはすべてHTMLに記述しています。

もし間違っていたらお教え頂けたらすごく助かります。

andoche
> > まだ対応していないようです……。- 引用テキストを表示しない -
>
> - 引用テキストを表示 -

Masashi.K

unread,
Nov 25, 2009, 4:53:26 AM11/25/09
to google-map...@googlegroups.com
andocheさん

コードを見たら、ロードが完了する前に「myOverView」を定義しようとしているのが間違えていますね。

Ajax API ローダーの場合は、「google.setOnLoadCallback(initialize);」でコールバックが
実行されるまで、APIの読み込みが完了しません。
しかし非同期でロードされるため、コードとしてはその先を実行してしまいます。
そのため、「google.maps.OverlayViewがない」というエラーになります。

(添付図参照)


なので、Ajax APIローダーを使って実行したいなら、initialize()関数が実行されてから、
30~59行目の「myOverView」が実行されるように工夫しなくてはりませんよ。

error.png

andoche

unread,
Nov 25, 2009, 6:02:51 AM11/25/09
to Google-Maps-API-Japan
Masashi.Kさん

丁寧なご教授痛み入ります。

仰る通りに編集したら無事解決しました。
http://www.haijima.asia/gmap3/

頼ってしまい申し訳ないです。

有難うございました!

andoche
> error.png
> 28K表示ダウンロード
Reply all
Reply to author
Forward
0 new messages