0
我可以使用Google Maps JS过滤没有gmaps.js的标记。但是,下面的代码不能与gmaps.js一起使用。错误声明:changeMap不是函数。我的业余JS级别无法弄清楚。有任何想法吗?gmaps.js - 如何使用select过滤标记?
我现在用gmaps.js
$(document).ready(function(){
var layer;
var tableid = 2796050;
var map = new GMaps({
el: '#map_canvas',
lat: 33.68906,
lng: -78.886694,
zoom: 11
});
infoWindow = new google.maps.InfoWindow({});
map.loadFromFusionTables({
query: {
select: '\'Location\'',
from: '1LNKdPBYZOlszyjQqzUhoqsQXVdkyQ7pP2o2ft9o'
},
suppressInfoWindows: false,
events: {
click: function(point){
infoWindow.setPosition(point.latLng);
}
}
});
// problem area
function changeMap() {
var searchString = document.getElementById('search-string').value.replace(/'/g, "\\'");
if(!searchString) {
layer.setQuery("SELECT 'Latitude' FROM " + tableid);
return;
}
layer.setQuery("SELECT 'Latitude' FROM " + tableid + " WHERE 'Category' = '" + searchString + "'");
}
});
HTML
<!-- HTML -->
<form>
<label>Category </label>
<select id="search-string" onchange="changeMap(this.value);">
<option value="">All Places</option>
<option value="Attractions">Attractions</option>
<option value="Dining">Dining</option>
<option value="Shopping">Shopping</option>
<option value="Services">Services</option>
</select>
</form>
感谢您的帮助,萨尔曼,但加入您的建议后,选择仍然不过滤出标记。 [链接] http://jsfiddle.net/djmtype/Bbzdh/5/我认为该功能需要以与工具提示相同的方式实施。有任何想法吗?对不起,JS不是我的第一语言,也不是第二或第三。 – user1848144 2013-03-25 23:22:29
我认为你的代码的一部分可能会丢失。你在哪里初始化'layer'? – Salman 2013-03-26 09:46:19