在数据刷新之前,Google Maps API ovverrideStyle不会更新多边形颜色

时间:2017-05-09 07:28:21

标签: google-maps google-maps-api-3 maps

我在每个多边形上都有一个右键单击事件,从文件生成并保存在mapData = map.Data();

这还包括每层的图层控制,由event的返回确定。

此时,右键单击事件应该只是更改多边形的颜色和关联的属性。例如。如果greenred生成green

thisLayer.addListener('rightclick', function (event) {
         removeInfoWindows(Layer);
         var color;
         if (event.feature.f.Enabled === 0) {
             color = '#006301';
             event.feature.f.Enabled = 1
         } else {
             color = '#630900';
             event.feature.f.Enabled = 0
         }
         thisLayer.overrideStyle(function (event) {
             return {
                 fillColor: color,
                 strokeWeight: 2
             };
         })
     })

一切正常,但地图上没有任何内容更新。在控制台中我可以看到event.feature.f.Enabled = 1改变了成功,甚至当在后一阶段该属性的更新请求,但颜色不更新,除非我调用一个事件上的任何其他多边形/层,除非我打电话从事件所述多边形,刷新数据的显示......从而正确地改变多边形的颜色。这可以继续,许多多边形在单独点击之前不会更新。

1 个答案:

答案 0 :(得分:0)

修正了它:event.feature

thisLayer.addListener('rightclick', function (event) {
         removeInfoWindows(Layer);
         var color;
         var stroke;
         if (event.feature.f.Enabled === 0) {
             color = '#006301';
             stroke = 4;
             event.feature.f.Enabled = 1
         } else {
             color = '#a8a8a8';
             stroke = 1;
             event.feature.f.Enabled = 0
         }
         thisLayer.overrideStyle(event.feature, {
             fillColor: color,
             strokeWeight: stroke
         });
     })