FusionTablesLayer where子句不过滤数据

问题描述:

我一直在寻找很多关于如何使用FusionTablesLayer在谷歌地图上显示区域的例子。我已经组合了一张融合表并为它创建了一个视图。这可以在这里找到(View of Data)。FusionTablesLayer where子句不过滤数据

但是,下面的代码片段似乎没有过滤基于where子句的数据。

var provinces = new google.maps.FusionTablesLayer({ 
    map: $scope.map, 
    query: { 
    select: "*", 
    from: "1NpDIypHO58j9k1BAOr1tniCgoOPUkdbKBsXgTVCS", 
    where: "'PROVINCE' = '02'", 
    limit: 100 
    }, 
    suppressInfoWindows: true 
}); 

这实际上仍然提取并显示所有四个省份,似乎无视where子句。

不要使用“*”作为选择,应该是包含地理信息的列(在您的案例中为geometry)。

proof of concept fiddle

代码片段:

function initialize() { 
 
    var map = new google.maps.Map(mapDiv, { 
 
    center: new google.maps.LatLng(52.669177995538305, -7.1375505556775405), 
 
    zoom: 7, 
 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
 
    }); 
 

 
    layer = new google.maps.FusionTablesLayer({ 
 
    map: map, 
 
    heatmap: { 
 
     enabled: false 
 
    }, 
 
    query: { 
 
     select: "geometry", 
 
     from: "1NpDIypHO58j9k1BAOr1tniCgoOPUkdbKBsXgTVCS", 
 
     where: "PROVINCE = '02'" 
 
    }, 
 
    options: { 
 
     styleId: 2, 
 
     templateId: 2 
 
    } 
 
    }); 
 

 
} 
 
google.maps.event.addDomListener(window, "load", initialize);
html, 
 
body, 
 
#mapDiv { 
 
    height: 100%; 
 
    width: 100%; 
 
    margin: 0px; 
 
    padding: 0px 
 
}
<script src="https://maps.googleapis.com/maps/api/js"></script> 
 
<div id="mapDiv"></div>

+0

绝对正确。这就是我所错过的。非常感谢。 – MadaManu