1回のクリックで2つのGoogleマップポリゴンレイヤーを選択できますか. 建物と区画の 2 つのレイヤーを追加できます。各レイヤーに個別にアクセスできますが、建物が区画レイヤーの上にあるマップをクリックすると、建物レイヤーのみが取得されます。
レイヤーを追加するスクリプト:
var otrParcel = new google.maps.FusionTablesLayer({
query: {
select: "'Geometry'",
from: otrParcLayer
},
suppressInfoWindows: true,
map: map
});
var otrBuilding = new google.maps.FusionTablesLayer({
query: {
select: "'Geometry'",
from: otrBldgLayer
},
suppressInfoWindows: true,
map: map
});
ワンクリックで両方のレイヤーから infoWindoHtml を取得しようとしています。これは、建物と区画が別々に機能しますが、一方が他方の上にある場合は機能しません。添付されているのは、これを実行しようとする私の最新の試みです。区画のある建物をクリックすると、最初のリスナー関数が正しく機能しません。2 番目のリスナー関数は正常に動作しています。
google.maps.event.addListener(otrBuilding , 'click', function(e) {
var infoBubble = new InfoBubble({
maxWidth: 300
});
infoBubble.addTab('Building', e.infoWindowHtml );
var layer = new google.maps.FusionTablesLayer({
query: {
select: "'geometry'",
from: otrParcLayer,
where: "ST_INTERSECTS('geometry', CIRCLE(LATLNG(e.latLng), 0.001))",
limit:1
}
});
infoBubble.addTab('Parcel', layer.infoWindowHtml);
infoBubble.addTab('Contact', contacInfo() );
if (!infoBubble.isOpen()) {
infoBubble.setPosition(e.latLng);
infoBubble.open(map);
};
});
google.maps.event.addListener(otrParcel , 'click', function(e) {
var infoBubble = new InfoBubble({
maxWidth: 300
});
infoBubble.addTab('Parcel', e.infoWindowHtml);
infoBubble.addTab('Contact', contacInfo() );
if (!infoBubble.isOpen()) {
infoBubble.setPosition(e.latLng);
infoBubble.open(map);
};
});
ここに私がテストしているページへのリンクがあります。マップが読み込まれると、右下の建物 (Emery シアター) がテストに使用されます。真ん中にドーナツの穴があります。外側のリングをクリックすると、建物と区画の情報が含まれている必要があります (含まれていません)。中央をクリックすると、区画情報のみが表示されます。