2012-07-27 9 views
0

퓨전 테이블 맵에서 재설정 버튼을 만들려고합니다. 클릭하면 모든 마커가 표시됩니다. 그러나 무언가가 그것에 작동하지 않습니다. 봐 주시기 바랍니다 : 재설정 버튼 - 작동시키기위한 기능 및 버튼 만들기

은 여기에 전체 코드 'S :

가 사실은 내가 함수 clearBox()에서 layer10 부분에서을 "모방"함수 초기화()를 tryed. 또한 reset() 메서드를 사용하려고 시도했지만 작동하지 않았습니다. 당신이 당신의 전체 코드, 그냥 쿼리를 변경하려면 리셋 기능을 변경하려면 그것이 작동되도록하는 가장 간단한 방법입니다 보면이 recent post on SO

에서 this map처럼 쿼리를 다시 설정하지 않아도 같은

<!DOCTYPE html> 
<html> 
<head> 
<style> 
#map-canvas { width:500px; height:600px; } 
</style> 
<script type="text/javascript" 
src="http://maps.google.com/maps/api/js?sensor=false"> 
</script> 
<script type="text/javascript"> 
var map; 
var layerl0; 
function initialize() { 
    map = new google.maps.Map(document.getElementById('map-canvas'), { 
    center: new google.maps.LatLng(-30.070876662388095, -51.1907958984375), 
    zoom: 12, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
    }); 
    layerl0 = new google.maps.FusionTablesLayer({ 
    query: { 
     select: "'ENDERECO'", 
     from: '3385625' 
    }, 
    map: map 
    }); 
} 
function changeMapl0() { 
    var searchString = document.getElementById('search-string-l0').value.replace(/'/g, "\\'"); 
    layerl0.setOptions({ 
    query: { 
     select: "'ENDERECO'", 
     from: 3385625, 
     where: "'TIPO' = '" + searchString + "'" 
    } 
    }); 
} 
google.maps.event.addDomListener(window, 'load', initialize); 

//Function to be activated by the reset button 
function clearBox() { 
document.getElementById('search-string-l0').value = ""; 
    layerl0 = google.maps.FusionTablesLayer({ 
    query: { 
     select: "'ENDERECO'", 
     from: '3385625' 
    }, 
    }); 
} 

</script> 
</head> 
<body> 
<div id="map-canvas"></div> 
<div style="margin-top: 10px;"> 
    <label>Tipo</label> 
    <select id="search-string-l0" onchange="changeMapl0 (this.value);"> 
    <option value="">--Select--</option> 
    <option value="Comidas variadas">Comidas variadas</option> 
    <option value="Restaurante">Restaurante</option> 
    <option value="Bar">Bar</option> 
    <option value="Hotel">Hotel</option> 
    <option value="Shopping Center">Shopping Center</option> 
    <option value="Teatro">Teatro</option> 
    <option value="Igreja">Igreja</option> 
    <option value="Museu">Museu</option> 
    <option value="Espaço de Cultura">Espaço de Cultura</option> 
    </select><br/> 
<input type="button" onclick="clearBox()" value="Reset Map" /> 
</div> 
</body> 
</html> 
+0

무슨 일입니까? select 요소를 "재설정"하려면 .value를 사용하지 않고 .selectedIndex를 사용하고 0으로 설정하십시오. http://jsfiddle.net/6WgFu/ – Ian

+0

에서 "map"변수가 없습니다. 당신의 코드. 지도를 어떻게 초기화합니까? FusionTablesLayer를 어떻게 초기화하고 있습니까? 초기 쿼리의 모양은 어떻습니까? 당신은 아마 그것을 재실행 할 필요가있다. – geocodezip

+0

changeMapl0 함수 란 무엇입니까? – geocodezip

답변

1

는 소리

변화 :

function clearBox() { 
document.getElementById('search-string-l0').value = ""; 
    layerl0 = google.maps.FusionTablesLayer({ 
    query: { 
     select: "'ENDERECO'", 
     from: '3385625' 
    }, 
    }); 
} 

에 다음 FusionTablesLayer의를 다시

function clearBox() { 
document.getElementById('search-string-l0').value = ""; 
    layerl0.setOptions({ 
    query: { 
     select: "'ENDERECO'", 
     from: '3385625' 
    } 
    }); 
} 

참고 : IE에서 문제가 될 수있는 불필요한 쉼표도 제거했습니다.

Working Example

+0

예, 저도하고 싶습니다! 그건 그렇고, 좋은지도! –

+0

사실, 선택 양식을 재설정하고 싶지 않습니다. 지도에서 마커를 재설정하고 싶습니다! –

+0

예제 코드 – geocodezip