Информационные окна полигонов в Gmaps4Rails

Я использую gmap4rails для рисования множества довольно сложных многоугольников, которые служат границами районов. У меня есть две вещи, с которыми я хотел бы помочь:

Во-первых, я хочу связать информационное окно с этими полигонами. Это пример моего варианта использования: https://google-developers.appspot.com/maps/documentation/javascript/examples/polygon-arrays

Я пытался зарегистрировать обработчик события щелчка в обратном вызове gmap, но он не работает, и я не думаю, что это правильный подход.

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 для некоторых пользовательских событий (например, пользователь щелкает флажок). Как бы я поступил, используя драгоценный камень?


person Ahmer Arif    schedule 16.04.2012    source источник


Ответы (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);
    });

}

И измените js-строка этого гема, чтобы поставить true вместо false. Я установил значение false, так как мне не понравилось изменение курсора. В любом случае это должно быть в параметрах конфигурации. Пожалуйста, создайте проблему на github, чтобы я не забыл ее исправить.

person apneadiving    schedule 16.04.2012