在谷歌地图外显示信息窗口

时间:2013-05-22 06:47:21

标签: google-maps google-maps-api-3 maps

我已经实现了带有邮政编码多边形的谷歌地图,即我使用不同的邮政编码坐标在地图上绘制某些邮政编码多边形。在邮政编码多边形上,我展示了市场标记。当我点击邮政编码多边形或市场标记时,它会显示一个包含相应数据的信息窗口。但是这个窗口在地图内打开,指向相应的邮政编码/市场标记。现在我有一个要求,我必须在地图外显示信息窗口,而不管邮政编码/标记。就像我将在地图外保留一定的固定区域(可能是div),当我点击任何一个邮政编码多边形时,信息窗口将显示在该固定区域内。我们怎么做呢。

我的工作代码

var path = [
                {% for polycoord in zip.zip_info.zip_polygon %}
                    new google.maps.LatLng({{polycoord.1}}, {{polycoord.0}}),
                {% endfor %}
            ];



var polygon = new google.maps.Polygon(
    {
        path:path, 
        clickable:true,
        strokeColor: '#000000',
        strokeOpacity: 0.75,
        strokeWeight: 1,
        fillColor: '#333fff',
        fillOpacity: 1,
    }

);



google.maps.event.addListener(polygon, 'click', function (event) {
            $.ajax({  
                type: "GET",  
                url: GET_DATA,  
                data: dataString, 
                success: function(res) { 
                    if(res != '') {
                        var contentString = res;
                        var infoWindow = new google.maps.InfoWindow(
                                        { content: contentString });    
                        infoWindow.setPosition(event.latLng);
                        infoWindow.open(map);
                        google.maps.event.addListener(map, 'click', function() {
                            infoWindow.close();
                        });
                    } else {
                        alert('No data found')
                    }
                }  
            });
    });

1 个答案:

答案 0 :(得分:0)

应该有效(如果您的现有代码有效),未经测试。

google.maps.event.addListener(polygon, 'click', function (event) {
        $.ajax({  
            type: "GET",  
            url: GET_DATA,  
            data: dataString, 
            success: function(res) { 
                if(res != '') {
                    var contentString = res;
                    document.getElementById('theIdOfYourDiv').innerHTML = res;
                } else {
                    alert('No data found')
                }
            }  
        });
});