如果和其他谷歌地图点击事件

If and else for Google map click event

本文关键字:事件 谷歌地图 其他 如果      更新时间:2023-09-26

我正在为来自数据库的每个位置设置谷歌标记,现在当用户单击任何图标时,我会通过替换为活动标记图像来将该图标设置为活动图标。

但当页面第一次加载时,我想在特定位置设置活动图标,这是我的代码。

    google.maps.event.addListener(marker, 'click', function() 
                    {
                     for( var m in $.bgmp.markers )
                        $.bgmp.markers[ m ].setIcon('http://guipme.npmdemo.com/wp-content/uploads/2015/12/marker_img.png');
})        

例如,我有4个地点——印度、巴基斯坦、斯里兰卡和孟加拉国。对于每个图标,我都会设置一个默认的img,但当用户点击say india时,我会将活动图标添加到india。类似的,当页面加载时,我想将活动图标添加到孟加拉国作为默认图标,我该怎么做?

我需要使用if else来点击和取消点击吗?

根据谷歌开发人员的讨论,我得到了答案,我们不能点击和取消点击,或者如果我的情况下的条件是google.maps.event.addDomListener(window,"load",function(){}),则不可能添加,如果点击将不起作用。我从谷歌讨论中得到了非常有趣的东西,我会在页面加载上添加我的非活动图标,这样就有了窗口加载功能。

    google.maps.event.addDomListener(window, "load",function(){
                        var lastPart = window.location.hash.substr(1);
                        alert("hi"+lastPart+marker['title']);
                        if (marker['title']==lastPart) { 
                     marker.setIcon('../uploads/2015/12/pme_inter_notaires_gcl_location_large.png');    
    }
})

这通过为我提供添加默认行为并在单击时更改此默认行为来解决我的问题。

一个可能的解决方案可以使用全局变量来存储实际的活动标记

var myActiveMarker;

在初始化阶段,您应该显示您想要激活的标记,并将该标记设置为存储的myActiveMarker var

 function init() {
  myInitMarker  = new google.maps.Marker({
               .....
  });
  myActiveMarker = myInitMarker;

 } 

然后在你的听众只需打开/关闭相关的标记

google.maps.event.addListener(marker, 'click', function() {
   myActiveMarker.setIcon('your_icon_not_active');
   marker.setInco('your_icon_active');
   myActiveMarker = marker
})