0

我有一个包含 5 个人口(列)的融合表,对于每一个我想以不同的颜色显示人口集中度最高的多边形。

在样式融合表图层的示例中,定义了“polygonOptions”,但我不希望多边形具有任何样式,除非其中一个人口集中,而且因为这会使 1 样式远离限制5。

我不确定要更改什么或缺少什么才能正确显示这些样式。

我的地图:http ://seflculturemap.com/miami-test.html

4

1 回答 1

0

您遇到的第一个问题是列名,当它们包含空格时,您必须将它们包装在查询内的单引号中。

另一个问题(您需要应用 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'
于 2013-03-28T19:14:43.367 回答