我一定错过了一些显而易见的东西——我基本上是在尝试在v2中做,我认为在[这个SO问题]中概述了这一点,但在v2中不起作用。具体地,不再定义Gmaps.maps
。
我已经了解到,如果我存储在buildMaps回调中调用addMarkers时返回的标记数据数组,我可以使用该数组的元素来删除标记。
如果我在发送给addMarkers的JSON中存储了一个自定义属性,那么我也可以保留该JSON数组,查询该属性,找到索引,然后在标记数据数组中隐藏带有该索引的标记-我的意思是,在伪代码中:
json_array=generate_json();
handler.build_map({}, function() { window.marker_data=handler.addMarkers(); });
indexes=find_in_json(json_array, {"type":"hotel"});
marker_data[i].hide() for i in indexes;
但这意味着我在两个地方有相同的概念数据——有没有更好的方法可以避免在两个单独的数组中管理标记的"模型"?
我理解你的担忧。
在这种情况下,我所做的是合并数据,检查http://apneadiving.github.io/有一个例子(查看侧边栏部分)
var markers = handler.addMarkers(json_array);
_.each(json_array, function(json, index){
json.marker = markers[index];
});