gpt4 book ai didi

javascript - 谷歌地图 : Dynamically resize infowindow

转载 作者:搜寻专家 更新时间:2023-11-01 05:08:37 24 4
gpt4 key购买 nike

信息窗口打开后如何调整大小?我在生成 AJAX 请求的窗口内有一个超链接;在回调中我想调整信息窗口的大小。

最佳答案

查看以下内容。发生的事情是我创建了一个最小的初始信息窗口信息(请参阅 getInfoWindowHtml)。 gmap.openInfoWindowHtml 调用提供了一个在信息窗口打开后调用的回调。在该回调中,进行 ajax 调用并重置窗口内容。但是有两个问题:

我无法让窗口完全根据返回的内容调整大小,所以我只使用了标准大小(请参阅 markerClickFn 返回的匿名函数中的新 GSize(300, 150))

  1. 在我的例子中,如果标记靠近图像边界的极端,部分信息窗口将被剪裁。 IOW, map 不会重新居中以包含信息窗口。我可能可以解决这个问题,但这并不是一个紧迫的问题。

    function markerClickFn(venue, latlng) {
    return function() {
    var title = venue.Name;
    var infoHtml = getInfoWindowHtml(venue);
    // need to zoom in
    gmap.setZoom(13);
    gmap.openInfoWindowHtml(latlng, infoHtml,
    {
    onOpenFn: function() {
    var iw = gmap.getInfoWindow();
    iw.reset(iw.getPoint(), iw.getTabs(), new GSize(300, 150), null, null);
    $("#info-" + venue.Id.toString()).load("/Venue/MapInfoWindow/" + venue.Id);
    }
    }
    );

    };
    }

    function getSidebarHtml(venue) {
    var url = "/Venue/Details/" + venue.Id; // actually should bring up infowindow
    var html = "<li id='venue-" + venue.Id + "'>\n";
    html = html + venue.Name + "\n";
    //html = html + "<p class='description'>" + trunc(venue.Description, 200) + "</p>\n";
    html = html + "</li>";
    return html;
    }

    function getInfoWindowHtml(venue) {
    var url = "/Venue/Details/" + venue.Id; // actually should bring up infowindow
    var html = "<div id='info-" + venue.Id + "'><a href='" + url + "' class='url summary'>" + venue.Name + "</a></div>\n";
    return html;
    }

    function addVenueMarker(venue) {
    var icon = new GIcon(G_DEFAULT_ICON);
    icon.image = "http://chart.apis.google.com/chart?cht=mm&amp;chs=24x32&amp;chco=FFFFFF,008CFF,000000&amp;ext=.png";

    var latLng = new GLatLng(venue.Lat, venue.Lng);
    var marker = new GMarker(latLng, { icon: icon });
    var fn = markerClickFn(venue, latLng);
    GEvent.addListener(marker, "click", fn);
    marker.event_ = venue;
    marker.click_ = fn;
    venue.marker_ = marker;
    markers.push(marker);
    return marker;
    }

关于javascript - 谷歌地图 : Dynamically resize infowindow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1224942/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com