1

我的任务是将 googlemaps 版本 2 更新到版本 3。

我有来自第二版的代码,它使用 ExtInfoWindow 来获取带有信息的“弹出窗口”,在广泛阅读下面的链接之后,我发现这种方法的等价物是 Infobox 或 InfoWindow。我决定去Infobox。

阅读链接:

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 放在 content 属性中(检查下面的代码),但是在阅读了 content 属性的文档几次之后,我意识到这不起作用。

我的尝试:

 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);
}

萤火虫错误信息:http: //img401.imageshack.us/img401/8646/firebugerror.png

我一直在从 ExtInfoWindow 中搜索大约 5 个小时来寻找相当于 AjaxUrl 的内容,但没有任何运气。

如果有人对我的问题有答案,我将感谢您的答案,如果这不是问题,如果您可以将我链接到有关解决方案的一些文档,我将不胜感激。

谢谢!

4

2 回答 2

1

根据文档,“内容”采用字符串或节点。

要在信息窗口中显示的内容。这可以是 HTML 元素、纯文本字符串或包含 HTML 的字符串。InfoWindow 将根据内容调整大小。要为内容设置显式大小,请将内容设置为具有该大小的 HTML 元素。

您应该只对内容执行您自己的 ajax 请求并将其提供给 infowindow/infobox。

于 2013-04-19T14:10:23.333 回答
0

好吧,我找到了解决方案!

感谢 Rick 尝试启动我的大脑。

一旦我了解了 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 回答