作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这将加载 map ,获取新结果并删除旧结果:
google.maps.event.addListener(map, 'idle', function() {
updateMap();
});
var infowindow = new google.maps.InfoWindow({});
function makeMarker(LatLong, markerName) { //this is called from a loop
var marker = new google.maps.Marker({
position: LatLong,
map: map,
title:markerName,
content: "html for the infoWindow"
});
//Detect marker click
google.maps.event.addListener(marker, "click", function() {
infowindow.setContent(this.content);
infowindow.open(map, marker);
});
}
最佳答案
updateMap
可能是根本问题所在。当您更新 map 时,您真的不需要删除每个标记并再次添加它;相反,您想删除不再需要的那些并添加您需要的那些。 (诚然,第一种策略要简单得多,并且适用于大多数用例。)
或者,我会探索两种方法:
markerClick
并实现类似的东西:google.maps.event.addListener(map, 'idle', function() {
if(!markerClick){
updateMap();
markerClick = false;
}
});
google.maps.event.addListener(marker, "click", function() {
markerClick = true;
infowindow.setContent(this.content);
infowindow.open(map, marker);
});
idle
了。 Events喜欢 dragend
和 zoom_changed
可能会更好地捕获您正在寻找的特定用户交互。 关于google-maps - 使用 'idle' 监听器更新 Maps V3。打开 InfowWindow 会触发此操作并隐藏标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8810979/
我知道可以在标记的信息窗口中捕捉点击。 I followed the documentation here . 所有都是用 Objective C 编写的,所以我尝试将其转换为 Swift,这是我的代
这将加载 map ,获取新结果并删除旧结果: google.maps.event.addListener(map, 'idle', function() { updateMap(); });
我是一名优秀的程序员,十分优秀!