Javascript Google Maps API FusionTablesLayer基于用户输入改变样式
这是我关于SO的第一个问题,如果我遗漏了什么,我表示歉意,但我已经搜索过了,还没有找到答案 我正在尝试使用融合表和地图API为英格兰地方当局级数据构建一个小型地图应用程序 该表有许多列,可以使用用户输入的权重将这些列组合成一个总分。这就是我希望地方当局能够绘制的总分。比如0.5*Col1+0.25*Col2+0.25*Col3,或者他们喜欢的任何东西。我可以很容易地将此信息显示在信息窗口中,如下所示:Javascript Google Maps API FusionTablesLayer基于用户输入改变样式,javascript,css,google-maps,google-fusion-tables,Javascript,Css,Google Maps,Google Fusion Tables,这是我关于SO的第一个问题,如果我遗漏了什么,我表示歉意,但我已经搜索过了,还没有找到答案 我正在尝试使用融合表和地图API为英格兰地方当局级数据构建一个小型地图应用程序 该表有许多列,可以使用用户输入的权重将这些列组合成一个总分。这就是我希望地方当局能够绘制的总分。比如0.5*Col1+0.25*Col2+0.25*Col3,或者他们喜欢的任何东西。我可以很容易地将此信息显示在信息窗口中,如下所示: google.maps.event.addListener(layer, 'click', f
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);
})
然而,我也希望能够颜色的地方当局多边形的梯度根据这个计算出的分数。我见过使用条件设置多边形颜色格式的技术:
样式:[{
其中:“'Col1'>200”,
多克隆选择:{
填充颜色:'#FFF000',
不透明度:1
}
},
{其中:“'Col1'<200”,
多克隆选择:{
填充颜色:'#FFFFFF',
不透明度:1
}
}
]
然而,我已经尝试过,但似乎无法在这里使用“weight1”等变量(可能是因为这是对融合表的请求,而不是在浏览器级别计算的内容)
我想知道的是,是否有人知道如何解决这个问题,能够根据用户输入动态组合列以影响样式?我想另一种方法是根据用户输入向Fusion表发送一列,然后将其回调并进行比较,但我也找不到如何做到这一点
非常感谢你的帮助
C当“用户输入”真的是一个自由选择,而不是一组预定义的可能值时,我认为这是不可能的。我目前的解决方法是在请求中从表中提取几何体信息,然后为每个多边形创建一个单独的多边形,可以自定义颜色。我还将尝试添加一个透明的Fusion Tables层来为信息窗口供电。
styles: [{
where: "'Col1' > 200",
polygonOptions: {
fillColor: '#FFF000',
fillOpacity: 1
}
},
{where: "'Col1' < 200",
polygonOptions: {
fillColor: '#FFFFFF',
fillOpacity: 1
}
}
]