Gmaps4Rails中的多边形信息窗口

时间:2012-04-16 08:30:42

标签: ruby-on-rails ruby-on-rails-3 google-maps-api-3 gmaps4rails

我正在使用gmap4rails绘制一堆相当复杂的多边形作为区域边界。我有两件事需要帮助:

首先,我想将点击信息窗口与这些多边形相关联。这是我的用例示例:https://google-developers.appspot.com/maps/documentation/javascript/examples/polygon-arrays

我已经尝试在gmap的回调中注册一个click事件处理程序,但它不起作用,我不认为这是正确的方法。

Gmaps.map.callback = function() 
{
        console.log("'sup");
        var infowindow = new google.maps.InfoWindow
        ({
            content: 'you clicked me!',
            suppressMapPan:true
        });
        google.maps.event.addListener(Gmaps.map.polygons[0], 'click', function() 
        {
            console.log("the click event fired");
            infowindow.open(map, Gmaps.map.polygons[0]);
        });

}

其次,我希望能够通过jquery在某些用户事件上更改这些多边形的填充颜色(例如,用户单击一个复选框)。我怎样才能使用宝石?

1 个答案:

答案 0 :(得分:1)

用以下方法替换您的方法:

Gmaps.map.callback = function() 
{
    console.log("'sup");
    Gmaps.map.polygons[0].infowindow = new google.maps.InfoWindow
    ({
        content: 'you clicked me!'
    });

    google.maps.event.addListener(Gmaps.map.polygons[0].serviceObject, 'click', function(event) 
    {
        console.log("the click event fired");
        infowindow = Gmaps.map.polygons[0].infowindow;
        infowindow.setPosition(event.latLng);
        infowindow.open(Gmaps.map.map);
    });

}

并将this gem's js line更改为true而不是false。我确实设置为false,因为我不喜欢光标更改。无论如何它应该在配置选项中。请在github上创建一个问题,以便我记得修复它。