Динамический стиль FusionTableLayer с API Карт - PullRequest
0 голосов
/ 11 февраля 2012

Я столкнулся с некоторыми проблемами при оформлении Fusion Layer, и я был бы очень признателен за вашу помощь.Я добавляю слой со стилем по умолчанию, определенным как

layer.set('styles', [{ 
                 polygonOptions: { 
                         fillColor: '#FFFFFF', 
                         fillOpacity: 1, 
                         strokeColor: '#000000', 
                         strokeWeight: 1 
                 } 
         }]); 

Это прекрасно работает.Затем для этого слоя устанавливается прослушиватель кликов.История выглядит так: пользователь щелкает элемент на карте.Если его свойство равно заданному значению (например, в форме), я хочу, чтобы эта функция получала другой fillColor, чем остальные.

google.maps.event.addListener(okresy,'click', function(ev) { 
                 nazev = ev.row.NAZEV.value; 
                         layer.set("styles", [{ 
                                 polygonOptions: { 
                                         fillColor: '#FFFFFF', 
                                         fillOpacity: 1, 
                                         strokeColor: '#000000', 
                                         strokeWeight: 1 
                                 }, 
                                 where: "'NAZEV' = '"+nazev+"'", 
                                 polygonOptions : { 
                                         fillColor : '#008C00', 
                                         fillOpacity : 1, 
                                         strokeColor : '#000000', 
                                         strokeWeight : 1 
                                 } 
                         }]); 

}); 

Итак, я настраиваю цвет # 008C00 для выбранной функции, а для каждой другой функции я назначаю тот же стиль, что и в начале.Однако, что бы я ни делал, я не могу заставить это работать.Остальные функции получают тот полупрозрачный красный цвет по умолчанию при нажатии какой-либо функции.Я что-то пропустил?Opera Dragonfly не сообщает об ошибках кода, поэтому я думаю, что синтаксис в порядке.

1 Ответ

2 голосов
/ 12 февраля 2012

Ха, проблема решена! Мне действительно нужно было что-то похожее на это:

okresy.set("styles", [{ 
        polygonOptions: {
            fillColor: '#FFFFFF', 
            fillOpacity: 1, 
            strokeColor: '#000000', 
            strokeWeight: 1 }}, 
        {where: "'NAZEV' = '"+nazev+"'", 
         polygonOptions : {
            fillColor : '#008C00', 
            fillOpacity : 1, 
            strokeColor : '#000000', 
            strokeWeight : 1 
         }} 
]);

Отладчик не сообщил ни об одной ошибке, вот что меня смутило.

...