2

gmap4railsを使用して、地区の境界として機能するかなり複雑なポリゴンの束を描画しています。お手伝いしたいことが2つあります。

まず、クリック時の情報ウィンドウをこれらのポリゴンに関連付けたいと思います。これは私のユースケースの例です: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を使用してこれらのポリゴンの塗りつぶしの色を変更できるようにしたいと思います。宝石を使ってどうやってそれをやるの?

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行を変更して、falseではなくtrueにします。カーソルの変更が気に入らなかったので、falseに設定しました。とにかく、それは構成オプションにあるべきです。githubで問題を作成して、修正することを忘れないようにしてください。

于 2012-04-16T19:51:27.560 に答える