【问题标题】:Fusion layer not getting plotted [duplicate]融合层没有被绘制[重复]
【发布时间】:2016-12-30 14:00:35
【问题描述】:

我有一个谷歌地图,上面有 3 个图层。

  • a) 地区
  • b) 状态
  • c) 县

它们会在您放大地图时出现。

这是代码 - https://jsfiddle.net/djz43usz/

//county level
         if(zoom_level >= 7) {
          clearRegion();
          marker_point = country_center;
          id = c_id;
          area_type="COUNTY";
          mark_center(); 
           layer = new google.maps.FusionTablesLayer({
            query: {
              select: '\'geometry\'',
              from: '1fio1qgy5HkinUDKqYvREIlSoBaHjl2RBe3DLJa38'
            },
            styles: [{
              polygonOptions: {
                fillColor: '#000000',
                fillOpacity: 0.001
              }
            },{
                where: "'GEO_ID2' IN ("+draw_str.toString()+")",
                polygonOptions: {
                  fillOpacity: 0.3
                }
              }]

          });
          layer.setMap(map);

          }
        });

地区和州运作良好。但是对于县来说,融合层不起作用。无论如何我可以解决它吗?

这就是现在的样子:

【问题讨论】:

    标签: google-maps


    【解决方案1】:

    如果我查看 javascript 控制台,我会看到:Failed to load resource: the server responded with a status of 413 ()。问题是draw_str 字符串太长(长度为 17555 个字符)。在这一行:

    where: "'GEO_ID2' IN ("+draw_str.toString()+")",
    polygonOptions: {
      fillOpacity: 0.3
    }
    

    您需要减小该查询字符串的大小(以适应 URL 最大值 2048)。

    proof of concept fiddle(显示图层)

    【讨论】:

    • 我有动态视图,即在一页上,它可以是具有 50 个地理编码的 draw_str,而在另一页上它可以是 1500 个,所以我无法真正减小大小。有没有办法克服这个限制和/或在页面上过滤它?
    • 上次你问这个问题时我给出了同样的答案:Google Maps Fusion Table layer not working
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多