如何在 google 地图中切换 gmaps.js setContextMenu 内容

How to toggle gmaps.js setContextMenu content in google map

我正在使用 gmaps.js. I have a problem with google map's setcontextmenu 制作 google-地图 api。

当用户右键单击地图时,将出现上下文菜单。我试图将上下文菜单选项的内容从 "measure distance" 更改为 "stop measure distance"。

下面是用户点击右键时的代码,显示两个菜单:"measure distance"和"stop measuring"。我想在两者之间切换。当用户单击 "measure distance" 菜单时,我希望 "measure distance" 菜单消失并显示 "stop measuring" 菜单。

我该怎么做?非常感谢任何帮助。

我试图将标志变量放入上下文菜单中,但它不起作用。

map_2.setContextMenu({
 control: 'map',
 options: [
  {
   title: 'Measure Distance',
   name: 'measure_distance',
   action: function(e) {
    // some codes here
   }
  },
  {
   title: 'Stop Measuring',
   name: 'stop_measure_distance',
   action: function(e) {
    // some codes here
   }
  }
 ]
});

为什么标志变量解决方案对您不起作用?我刚刚尝试快速编码,它正在为我工​​作,请测试以下代码:

<script>
    var map;
    var flag = true;

    function initMap() {
        map = new GMaps({
            div: '#map',
            lat: -12.043333,
            lng: -77.028333
        });

        toggle();
    }

    function toggle() {
        if (map) {
            if (flag) {
                map.setContextMenu({
                    control: 'map',
                    options: [{
                        title: 'Measure Distance',
                        name: 'measure_distance',
                        action: function(e) {
                            flag = false;
                            toggle();
                        }
                    }]
                });
            }
            else {
                map.setContextMenu({
                    control: 'map',
                    options: [{
                        title: 'Stop Measuring',
                        name: 'stop_measure_distance',
                        action: function(e) {
                            flag = true;
                            toggle();
                        }
                    }]
                });
            }
        }
    }
</script>

希望对您有所帮助!