Google Maps API FusionTablesLayer会根据用户输入更改样式

时间:2015-02-20 18:09:32

标签: javascript css google-maps google-fusion-tables

这是我关于SO的第一个问题,如果我遗漏任何内容,请道歉,但我已经搜索过,但未能提出答案。

我正在尝试使用Fusion Tables和Maps API为英格兰的地方权威级数据构建一个小型地图应用。

该表具有多个列,然后可以使用用户输入的权重将其组合成总分。这是我希望能够由地方当局绘制的总分。所以像0.5 * Col1 + 0.25 * Col2 + 0.25 * Col3,或者他们喜欢。我可以很容易地将这些信息显示在infoWindow中,如下所示:

google.maps.event.addListener(layer, 'click', function(e) {
      infoWindow.setContent((e.row['Col1'].value*weight1 + e.row['Col2'].value*weight2  + weight3*e.row['Col3'].value ))
        ;
      infoWindow.setPosition(e.latLng);
      infoWindow.open(map);
    })

但是,我还希望能够根据此计算得分在渐变上为局部权限多边形着色。我已经看到了使用条件来格式化多边形颜色的这种技术:

http://w3facility.org/question/in-fusion-tables-can-a-gradient-be-set-via-the-google-maps-javascript-based-api/

styles: [{
  where: "'Col1' > 200",
  polygonOptions: {
      fillColor: '#FFF000',
      fillOpacity: 1
  }
  }, 

  {where: "'Col1'  < 200",
  polygonOptions: {
      fillColor: '#FFFFFF',
      fillOpacity: 1
  }
}
  ]

但是,我尝试过并且似乎无法在这里使用“weight1”等变量(大概是因为它是对Fusion Tables的请求,而不是在浏览器级别计算的东西)。

我想知道的是,是否有人知道这方面的任何方法,能够根据用户输入动态组合列以影响样式?我想另一种方法是根据用户输入将一列发送到Fusion Table,然后再将其调回并进行比较,但我也找不到如何做到这一点。

非常感谢你的帮助。

C

0 个答案:

没有答案