0
我試圖在Fusion Tables圖中切換兩個圖層。爲了使我已經創建了兩個功能 - 這是我從一個例子了從FT隊席:如何切換Fusion Tables中的不同圖層
但不知何故,這是行不通的。請看看:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta charset="UTF-8">
<title>PDDUA Porto Alegre</title>
<style>
#map-canvas { width:400px; height:450px; }
</style>
<script type="text/javascript"
src="http://maps.google.com/maps/api/js?sensor=false">
</script>
<script type="text/javascript">
var map;
var layer1;
var layer2;
function initialize() {
map = new google.maps.Map(document.getElementById('map-canvas'), {
center: new google.maps.LatLng(-30.07080000, -51.1900000),
zoom: 10,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
layer1 = new google.maps.FusionTablesLayer({
query: {
select: "'geometry'",
from: '4756019',
},
map: map
});
layer2 = new google.maps.FusionTablesLayer({
query: {
select: "'geometry'",
from: '4755921',
},
map: map
});
}
google.maps.event.addDomListener(window, 'load', initialize);
//FUNCTION TO CHANGE LAYERS
function changeMap(layerNum) {
if (layerNum === 1) {
update(layer1);
}
if (layerNum === 2) {
update(layer2);
}
}
//FUNCTION TO UPDATE LAYERS
function updateMap(layer) {
var layerMap = layer.getMap();
if (layerMap) {
layer.setMap(null);
} else {
layer.setMap(map);
}
}
//FUNCTION TO FILTER DATA BY COLUMNS AND ROWS
function filterData() {
var searchString = document.getElementById('search-string').value.replace(/'/g, "\\'");
var filter = document.getElementById('filter').value.replace(/'/g, "\\'");
if (filter === "UEU") {
layer1.setOptions({
query: {
select: "'geometry'",
from: '4756019',
where: "'UEU' = '" + searchString + "'"
}
});
}
else if (filter === "SUBUEU") {
layer1.setOptions({
query: {
select: "'geometry'",
from: '4756019',
where: "'SUBUEU' = '" + searchString + "'"
}
});
}
else if (filter === "CODIGO") {
layer1.setOptions({
query: {
select: "'geometry'",
from: '4756019',
where: "'CODIGO' = '" + searchString + "'"
}
});
}
}
//FUNCTION TO RESET DATA
function resetData() {
document.getElementById('search-string').value = "";
layer1.setOptions({
query: {
select: "'geometry'",
from: '4756019'
}
});
}
</script>
</head>
<div id="map-canvas"></div><br/>
<div style="margin-top: 10px;">
<label>Tipo</label>
<select id="filter">
<option value="">--selecionar--</option>
<option value="UEU">UEU</option>
<option value="SUBUEU">SUBUEU</option>
<option value="CODIGO">CODIGO</option>
</select><br/><br/>
<input type="text" id="search-string" />
<input type="button" onclick="filterData();" value="Find!"/>
<input type="button" onclick="resetData();" value="Reset Layer" /><br/><br/>
<label>Layers:</label><br/>
<label>RAREFEITA</label><input type="checkbox" value="1" onclick="changeMap(this.value);" checked="checked" /><br/>
<label>INTENSIVA</label><input type="checkbox" value="2" onclick="changeMap(this.value);" checked="checked" /><br/>
</div>
</body>
</html>
非常感謝!只是一個問題。這行:console.log(「up 1」)真的有必要嗎? – 2012-08-04 15:07:09
'console.log()'僅用於登錄調試控制檯。您可以刪除該行,但不會更改代碼的行爲。 – Odi 2012-08-04 21:38:41
@Tim jsfiffle的例子不再可用..你可以請再次發佈它?謝謝。 – 2013-09-30 18:47:11