2

我正在使用 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 在某些用户事件上更改这些多边形的填充颜色(例如,用户单击复选框)。我将如何使用宝石来解决这个问题?

4

1 回答 1

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

}

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

于 2012-04-16T19:51:27.560 回答