我有一个包含 5 个人口(列)的融合表,对于每一个我想以不同的颜色显示人口集中度最高的多边形。
在样式融合表图层的示例中,定义了“polygonOptions”,但我不希望多边形具有任何样式,除非其中一个人口集中,而且因为这会使 1 样式远离限制5。
我不确定要更改什么或缺少什么才能正确显示这些样式。
我有一个包含 5 个人口(列)的融合表,对于每一个我想以不同的颜色显示人口集中度最高的多边形。
在样式融合表图层的示例中,定义了“polygonOptions”,但我不希望多边形具有任何样式,除非其中一个人口集中,而且因为这会使 1 样式远离限制5。
我不确定要更改什么或缺少什么才能正确显示这些样式。
您遇到的第一个问题是列名,当它们包含空格时,您必须将它们包装在查询内的单引号中。
另一个问题(您需要应用 6 种样式,但限制为 5 种)。您也可以直接为地图创建样式,因此您可以创建一个虚拟样式,将所有多边形的不透明度设置为 0。
要应用此样式,请使用样式的 ID 并将其与选项参数一起传递给图层。我为您的地图创建了这样一个虚拟样式,它确实有 ID4
图层创建现在应该如下所示: var layer1 = new google.maps.FusionTablesLayer({
query: {
select: 'geometry',
from: '1PM3_L795Eus1HXCylF6UM0tLqXarnkNZeB_LmM8'
},
options: {
styleId: 4
},
styles: [
{
where: "'Puerto Rican Population' > 500",
polygonOptions: {
fillColor: "#46A2D1", //blue
fillOpacity: 0.7}
},
{
where: "'Cuban Population' > 500",
polygonOptions: {
fillColor: "#F29400", //orange
fillOpacity: 0.7 }
},
{
where: "'Bahaman Population' > 100",
polygonOptions: {
fillColor: "#BAC200", //yellow
fillOpacity: 0.7}
},
{
where: "'Dominican Population' >200",
polygonOptions: {
fillColor: "#E068A0", //pink
fillOpacity: 0.7 }
},
{
where: "'Haitian Population' > 500",
polygonOptions: {
fillColor: "#66A919", //green
fillOpactity: 0.7}
}
]
});
测试:http: //jsfiddle.net/doktormolle/8mZuB/
相关评论:
您使用了错误的列名。
对于http://www.seflculturemap.com/maps/central-american-populations.html:
'Nicaraguan' -> 'Nicaraguan Population'
对于http://www.seflculturemap.com/maps/south-american-populations.html:
'Venezuelan Population' ->'Venzuelan Population
'Peruvian' ->'Peruvian Population'
'Argentinian Population' ->'Argentinean Population'