【发布时间】:2015-04-22 18:44:28
【问题描述】:
我知道有一些与标题相关的问题,但我没有找到适合我的答案。
这是我的问题:
我正在尝试打印一张地图,其中包含多个标记,通过数据库生成。我在地图下方有一些复选框,可以让我过滤地图上的标记。
所以,当我第一次加载地图时,一切都经过了很好的过滤(取决于默认检查的内容),因为我真的不明白如何在地图已经初始化后添加/删除标记。我必须重新加载地图,还是我错过了什么?
以下是相关代码:
<form>
<input class="test" type="checkbox" name="type" value="1" onclick="test()" checked/>1<br/>
<input class="test"type="checkbox" name="type" value="2" onclick="test()" checked/>2<br/>
<input class="test"type="checkbox" name="type" value="3" onclick="test()" checked/>3<br/>
<input class="test"type="checkbox" name="type" value="4" onclick="test()" checked/>4<br/>
<script>
var checkedValues = $('input:checkbox:checked').map(function() {
return this.value;
}).get().join('-');
function fetchPlace(filtreType){
$.ajax({
url: "ajaxmap.php?type=" + filtreType,
type : 'GET',
dataType: 'json',
success : function(data) {
// Loop through our array of markers & place each one on the map
for( i = 0; i < data.marker.length; i++ ) {
var myLatlng = new google.maps.LatLng(data.marker[i].log,data.marker[i].lat);
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
title: 'Hello World!'
});
}
}
,
error: function(){
/// traiter les erreur
},
async : true
});
};
function test (){
var checkedValues = $('input:checkbox:checked').map(function() {
return this.value;
}).get().join('-');
fetchPlace(checkedValues);
};
fetchPlace(checkedValues);
感谢您提供的任何帮助。
孤独
【问题讨论】:
-
你想在什么条件下过滤它们?
-
我正在过滤表单中选中的复选框。然后,我的 ajax 页面生成带有标记纬度和经度的数组,其中选中了复选框。
-
对。我会做什么:在你的ajax成功函数中使用
filterType将你的标记添加到一个数组中。这样您就可以轻松引用它们、切换它们在地图上的显示等。您需要一个示例吗? -
请。这与 dgig 在下面的答案中所说的方式相同吗?因为我仍然无法理解它是如何工作的:/
-
嗯……是的,不是的。将发布正确的答案。
标签: javascript ajax google-maps google-maps-api-3 marker