-1

我正在尝试将多种样式应用于 Google Fusion Table Layer。

这适用并将数组中的所有多边形着色为蓝色:

layer = new google.maps.FusionTablesLayer({
      map : map,
      query : {
        select : "geometry",
        from : "1gwSN6n_00uZ7YuAP7g4FiUiilybqDRlRmWJrpvA"
      },

    styles: [{
     polygonOptions:
      {
              fillColor: "#ffffff",
              strokeColor: "#bcbcbc",
              fillOpacity: ".75"
      }
    },
    {
          where: whereClause,
          polygonOptions: {
            fillColor: "#0D58A6"
          }
    }

    ]

    });
layer.setMap(map);

但这不起作用——我的地图上什至没有多边形出现:

layer = new google.maps.FusionTablesLayer({
      map : map,
      query : {
        select : "geometry",
        from : "1gwSN6n_00uZ7YuAP7g4FiUiilybqDRlRmWJrpvA"
      },

    styles: [{
     polygonOptions:
      {
              fillColor: "#ffffff",
              strokeColor: "#bcbcbc",
              fillOpacity: ".75"
      }
    },
    {
          where: whereClause,
          polygonOptions: {
            fillColor: "#0D58A6"
          }
    }
    ,
    {
          where: whereClause,
          polygonOptions: {
            fillColor: "#ff0000"
          }
    }
    ]

    });
layer.setMap(map);

别介意我给同一种东西上色,一种颜色然后另一种颜色——我只是想让第二种风格起作用。当我取出第二种样式时,一切都很好。我加入了第二种风格——不再使用多边形。

有人可以告诉我我做错了什么吗?

4

1 回答 1

1

这很可能是一个错误(具有两种不同样式的完全相同的 where 子句):

{
      where: whereClause,
      polygonOptions: {
        fillColor: "#0D58A6"
      }
}
,
{
      where: whereClause,
      polygonOptions: {
        fillColor: "#ff0000"
      }
}

我希望 where 子句必须是唯一的。

更新:

我目前的猜测是,您遇到了发送回服务器的数据大小的查询限制。

每个 whereClauses 独立工作

如果这是问题(查询字符串太大),将“COUSUBFP”代码映射到更短的代码(3 个十进制数字或两个十六进制数字),可能会使其工作(或者就此而言,只需截断前导“0” )。

 03320 -> 0
 03608 -> 1
 etc.
于 2012-12-05T17:38:48.397 回答