1

Googlemaps バージョン 2 をバージョン 3 に更新するタスクがあります。

ExtInfoWindow を使用して情報を含む「ポップアップ」を取得するバージョン 2 のコードがあり、以下のリンクをよく読んだ後、このメソッドに相当するのは Infobox または InfoWindow であることがわかりました。インフォボックスに行くことにしました。

リンクを読む:

https://developers.google.com/maps/documentation/javascript/reference#InfoWindow

http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobox/docs/examples.html

http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobox/docs/reference.html

http://gmaps-utility-library-dev.googlecode.com/svn/trunk/extinfowindow/docs/reference.html

バージョン 2 のコード:

 google.maps.event.addListener(marker, 'click', function() {
        marker.openExtInfoWindow(
        map,
        "mapwindow",
        "<img src='/images/ajax-loader.gif'>",
        { beakOffset: 0, paddingX: 60, paddingY: 45, ajaxUrl: '/templates/GoogleMapsMarkerInfo.aspx?id=' + page + '&epslanguage=<%=CurrentPage.LanguageBranch %>' }
        ); 
};

コードからわかるように、InfoWindow または InfoBox で見つけることができなかったプロパティ ajaxUrl があります。おそらく上記の AjaxUrl を取得してコンテンツ プロパティ内に配置できると考えましたが (以下のコードを確認してください)、コンテンツ プロパティのドキュメントを数回読んだ後、これが機能しないことに気付きました。

私の試み:

 google.maps.event.addListener(marker, 'click', function() {
                var myOptions = {
                 content: {"<img src='/images/ajax-loader.gif'>",'/templates/GoogleMapsMarkerInfo.aspx?id=' + page + '&epslanguage=<%=CurrentPage.LanguageBranch %>'}
                ,disableAutoPan: false
                ,maxWidth: 0
                ,pixelOffset: new google.maps.Size(60, 45)
                };
            var ib = new InfoBox(myOptions);
            ib.open(map, marker);
}

firebug エラー メッセージ: http://img401.imageshack.us/img401/8646/firebugerror.png

ExtInfoWindow から AjaxUrl に相当するものを約 5 時間探していましたが、運がありませんでした。

誰かが私の問題に対する答えを持っている場合は、その答えに感謝します。それが問題でない場合は、解決策に関するドキュメントにリンクしていただければ幸いです。

ありがとうございました!

4

2 に答える 2

1

ドキュメントによると、「コンテンツ」は文字列またはノードを取ります。

InfoWindow に表示するコンテンツ。これは、HTML 要素、プレーンテキスト文字列、または HTML を含む文字列にすることができます。InfoWindow は、コンテンツに応じてサイズ変更されます。コンテンツに明示的なサイズを設定するには、コンテンツをそのサイズの HTML 要素に設定します。

コンテンツに対して独自の ajax リクエストを実行し、それを infowindow/infobox に提供するだけです。

于 2013-04-19T14:10:23.333 に答える
0

さて、私は解決策を見つけました!

私の脳を活性化させようとしてくれたリックに感謝します。

Rick ment の意味を理解したら、とても簡単でした。

ajax リクエストを実行したところ、返されたデータは html ドキュメントでした。

Rick が述べたように、コンテンツ プロパティはこの情報を表示できるので、取得したデータをコンテンツに設定するだけで、できあがりです!

コード:

 $.ajax({
                url: '/templates/GoogleMapsMarkerInfo.aspx?id=' + page + '&epslanguage=<%=CurrentPage.LanguageBranch %>',
                dataType: "html",
                success: function(data){
                    var infowindow = new google.maps.InfoWindow({
                      content:data
                    });
                    infowindow.open(map, marker);
                }
             });

ありがとうリック!

于 2013-04-22T14:04:41.220 に答える