0

5 つのフュージョン テーブル レイヤーと 1 つのフュージョン テーブル レイヤーの 5 つのスタイルの制限のため、次のように試してみる必要があります。地図。

しかし、実装した後、最初のフュージョン テーブル レイヤーしか表示されないことがわかりました。

次に、その理由を確認するテスト ケースを作成しました。そして発見: 2 つのレイヤーにスタイルを設定すると、最初のレイヤーのみが表示され、2 番目のレイヤーは表示されなくなります。1 つのレイヤーのスタイルを設定すると、うまく機能します。

以下は私のコードです。誰かがそれを手伝ってくれますか? これで、1 つのレイヤーのみが表示されます。それらまたはいずれかのスタイル設定をコメントすると、両方のレイヤーを表示できます。

前もって感謝します!

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
html { height: 100% }
body { height: 100%; margin: 0px; padding: 0px }
#top-box {padding: 10px; background-color:#336699;}
.para-line {font-weight:bold;}
#map_canvas { height: 100% }
</style>
<script type="text/javascript"src="http://maps.google.com/maps/api/js?sensor=false"></script>

<script type="text/javascript">

    var map;

    function initialize() {
        map = new google.maps.Map(document.getElementById("map_canvas"));
        map.setMapTypeId('roadmap');
        map.setCenter(new google.maps.LatLng(38.4985464, -98.3834298));
        map.setZoom(4);

        var tableid1 =  4436842;

        var style = [{
            where: "State in('IL','PA')",
            polygonOptions: 
            {
                fillColor: "#rrggbb",
                fillOpacity: 0.7  
            }
        },{
            where: "State in('AL')",
            polygonOptions: 
            {
                fillColor: "#006400",
                fillOpacity: 0.7
            }
        }
        ];

        var query1 = {
            select: ['geometry','name'],
            from: tableid1,
            where: "State in('IL','PA')"
        }

        var query2 = {
                select: ['geometry','name'],
                from: tableid1,
                where: "State in('AL')"   
            }

        var layer1 = new google.maps.FusionTablesLayer({
            query:query1,
            styles: style,
            suppressInfoWindows: false,
            clickable:true
        }); 

        layer1.setMap(map);

        var layer2 = new google.maps.FusionTablesLayer({
            query:query2,
            styles:style,
            suppressInfoWindows: false,
            clickable:true
        }); 
        layer2.setMap(map);

        return;

    } 
</script>
</head>
<body onload="initialize()">    
<div id="map_canvas" style="width:100%; height:100%"></div>
</body>
</html>
4

1 に答える 1

1

制限は (ドキュメント「Maps API を使用して、最大 5 つのフュージョン テーブル レイヤーをマップに追加できます。そのうちの 1 つは、最大 5 つのスタイリング ルールでスタイルを設定できます。」より) です。

FusionTable ユーザー インターフェイスを使用してレイヤーのスタイルを設定できますが、動的にスタイルを設定できるのは 1 つだけであり、その 1 つには 5 つのスタイル ルールしかありません。

于 2012-08-25T06:09:33.370 に答える