多个FusionTables查询无效

时间:2013-11-28 08:51:10

标签: javascript google-maps-api-3 google-fusion-tables

我正在使用Google Maps API。我想为某些国家/地区指定颜色。

要做到这一点,我必须得到每个国家的边界​​,以便能够绘制多边形。所以,我正在使用FusionTables。对于每个国家/地区,我都会使用FusionTables查询来获取图层,然后设置地图。在这里我做了什么。

var countryArray = new Array();
var nodeArray = new Array();
var companyArray = new Array();
var locationsArray = new Array();

function plotMarker() {
var rootMarker = locationsArray[companyArray.indexOf(rootCompany)];
var latlng = new google.maps.LatLng(0, 0);
var myStyle = [
{
    featureType: "all",
    elementType: "labels",
    stylers: [
    { 
        visibility: "off" }
        ]
    }
    ];

    map = new google.maps.Map(document.getElementById("map_canvas"), {
        mapTypeControlOptions: {
            mapTypeIds: ['mystyle', google.maps.MapTypeId.ROADMAP, google.maps.MapTypeId.TERRAIN]
        },
        center: latlng,
        zoom: 2,
        mapTypeId: 'mystyle'
    });

    map.mapTypes.set('mystyle', new google.maps.StyledMapType(myStyle, { name: 'My Style' }));


    for (var i = 0; i < locationsArray.length; i++) {
        if (locationsArray[i] != undefined) {
            var latitude = locationsArray[i].lat() + verDiff;
            var longitude = locationsArray[i].lng() + horDiff; 
            var newLatlng = new google.maps.LatLng(latitude, longitude);

            var ftoptions = {
                query: {
                  from: '419167',
                  select: 'kml_4326',
                  where: "sovereignt = '"+countryArray[i]+"'"
              },
              suppressInfoWindows:true,
              styles: [
              { 
                polygonOptions: {
                    fillColor:'#0040FF',
                    fillOpacity:0.7
                }
            }
            ]
        };

        var layer = new google.maps.FusionTablesLayer(ftoptions);
        layer.setMap(map);
    }
}

}

但是,为什么这种风格只适用于第一个国家?我想知道是否所有国家都没有成功执行查询,或者只是样式有问题?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

地图只能有1个样式的FusionTablesLayer,其他图层的样式将被忽略。

创建一个FusionTablesLayer并通过IN()条件

选择多个主权者