marker.setVisible(false) 和 marker.setMap(null) 不适用于所有标记
marker.setVisible(false) and marker.setMap(null) not working on all markes
我正在尝试更改标记,同时更改Google地图中的缩放级别。当页面加载时,将在Google地图上创建6个标记(用于区域)并推送到一个数组中,如果用户放大,则6个标记将被删除并替换为另一个标记(对于城市)标记的数量各不相同,它不是固定的。当用户缩小时,将删除新标记,并再次创建旧的 6 个标记。所有这些都对我有用,除非用户缩小时只删除了 6 个标记(对于城市)。这是我的代码示例:'
var markers=[];
addRegionsMarkers();
google.maps.event.addListener(map, 'zoom_changed', function () {
if (map.getZoom() == 11)
{
for (var i = 0; i < 6; i++)
{
markers[i].setVisible(false);
}
markers=[];
for (var i = 0; i < cityListMap.length; i++) {
(function ()
{
var k = i;
var marker = new MarkerWithLabel({
position: new google.maps.LatLng(cityListMap[i].latitude, cityListMap[i].longitude),
map: map,
labelContent: cityListMap[i].average.toFixed(1) + suffix,
labelAnchor: new google.maps.Point(20, 20),
labelClass: "labels",// the CSS class for the label
});
marker.setIcon('.');
marker.setTitle(cityListMap[i].city);
markers.push(marker);
}())
}
}
else
{
if (map.getZoom() == 8) {
for (var j = 0; j < cityListMap.length ; j++)
{
markers[j].setVisible(false);
// alert(markers[j].getTitle() + " id " + j);
}
markers =[];
addRegionsMarkers();
}
}
});
function addRegionsMarkers()
{
for (var i = 0; i < 6; i++) {
(function () {
var k = i;
var marker = new MarkerWithLabel({
position: locationsLatlng[i],
map: map,
labelContent: averagesArray[i] + suffix,
labelAnchor: new google.maps.Point(20, 20),
labelClass: "labels",// the CSS class for the label
});
marker.setIcon('.');
marker.setTitle(region[i]);
markers.push(marker);
}())
}
}`
我尝试了 setVisible() 和 setMap(null) 我得到了相同的结果,只删除了 6 个标记,我通过在 for 循环中添加警报来检查 for 循环是否正常工作,它确实如此。我尝试了我能想到的所有事情,直到我不知道,希望有人能向我解释为什么会这样。
我:D解决了它....我在 if 语句中添加了一个条件:
if (map.getZoom() == 11 && markers.length==6)
{
.......
}
.....
if (map.getZoom() == 8 && markers.length==cityListMap.length) {....}
现在它工作得很好
相关文章:
- JQueryhide()不适用于Mozzilla,但适用于Chrome
- PHP中的setcookie仅适用于localhost
- html5 drawImage适用于firefox,而不是chrome
- 提供“;onClick"适用于iPad(触摸屏)和桌面用户的默认功能
- jQuery表单验证适用于Mozilla和Internet Explorer,但不适用于Chrome或Safari
- ResolveUrl是否适用于././也
- Firebase updateChildValues适用于IOS,但不适用于Web和Android
- JavaScript警报适用于int,但不适用于string
- SQLite插件适用于Mac和Windows,但不适用于手机上的Safari
- Regex Replace仅适用于Last Match
- window.onload适用于aspx页面,但不适用于普通html
- Jquery Ajax POST不工作.适用于GET
- 画布上的自定义字体仅适用于safari
- Javascript仅适用于alert()和Debug模式
- JS适用于Firefox和Safari,但不适用于Chrome.此处'是我的网站
- Regex不适用于Firefox,但适用于Chrome
- 通过单击主菜单外部关闭子菜单'不适用于IE,但适用于Firefox&铬
- AngularJS$http.post没有'不适用于Chrome,仅适用于IE
- Javascript仅适用于jQuery mobile中的页面刷新
- 关闭当前选项卡并打开一个新的-仅适用于Chrome