在Google Maps V3中,是否有方法检查标记是否确实存在于Map上?
我有标记消失时,单击。我想一些逻辑来检查标记的当前可见性。
例如:
var start_marker = null;
start_marker = new google.maps.Marker({ position: location, map: map, clickable: true });
google.maps.event.addListener(start_marker, 'click', function(event) {
start_marker.setMap(null);
});
// ... Later in code: check whether marker is currently visible.
console.log('Type of start_marker is now: ' + typeof(start_marker));
我希望当标记不可见时,这会给我一个null类型,但实际上它仍然是一个Object。
那么,我还可以如何检查这个特定的标记在Map上是否可见呢?
谢谢!
5条答案
按热度按时间rfbsl7qr1#
如果
marker
的位置 * 包含 * 在当前map
边界之下,则该一行程序将返回true
,否则返回false
。oprakyz72#
如果您以前使用过start_marker.setMap(null),则返回null;就像你的例子一样。
也就是说,如果只想隐藏和显示标记,为什么不使用setVisible和getVisible呢?
1tu0hz3e3#
如果您只想隐藏/显示标记,您可以使用标记的setVisible方法,如下所示:
因为setMap(null)不隐藏标记,而是从Map中删除标记。
然后可以使用getVisible()获取标记的可见性,如下所示:
你可以在这里读到它们:https://developers.google.com/maps/documentation/javascript/overlays#Markers
mgdq6dx14#
一个月一个月
unftdfkk5#
我认为你必须改变你的逻辑。为什么不把你的标记存储在一个数组中,当它们被点击时,从这个数组中完全删除它们。所以剩下的标记是可见的。
干杯