如何更改谷歌地图绘图管理器工具栏工具提示?

问题描述 投票:3回答:2

我有谷歌地图绘图经理的情况。我想更改绘图管理器工具栏默认工具提示。当我们将鼠标移到绘图管理器工具栏上时(将鼠标移动到标记,圆圈上),我们会看到工具提示“添加标记”,“绘制圆形”。我想将工具栏工具提示更改为“添加新位置”,“绘制区域”。我使用谷歌地图API版本3。是否有可能改变它?

提前致谢

javascript google-maps google-maps-api-3
2个回答
3
投票

无法通过API访问按钮的节点,最好的方法是省略内置控件并创建自己的控件。

另一种方法(使用jQuery,但也可以没有框架):

$(map.getDiv()).one('mouseover','img[src="https://maps.gstatic.com/mapfiles/drawing.png"]',function(e){

    $(e.delegateTarget).find('img[src="https://maps.gstatic.com/mapfiles/drawing.png"]').each(function(){
      $(this).closest('div[title]').attr('title',function(){
         switch(this.title){
          case 'Add a marker':
            return 'Add New Location';
              break;
          case 'Draw a circle':
            return 'Draw an area';
              break;
          default:return this.title;  
         } 

      });
    });
  });

它会观察按钮的鼠标悬停事件(因为您永远不会知道文档中的按钮何时可用),然后修改标题。

但是这种方法只有在API使用英语作为语言时才有效。为了实现它,无论使用何种语言,您都必须检查按钮图像的顶部属性(这似乎是可用于确定按钮所用形状类型的唯一细节)


1
投票

由于原因,我无法使用@ Dr.Molle版本。然而,适应this answer我能够让它在我的应用程序中工作。

例如,我只想更改`DrawingManager'drawRectangle方法的文本,下面的代码对我有用。对DrawingManager工具提示进行此修改的关键是在此代码运行之前确保文档和地图对象已满载。

        $(".gmnoprint").each(function(){
        var newObj = $(this).find("[title='Draw a rectangle']");
        newObj.attr('title', 'Draw a rectangle around the area to search');
    });
© www.soinside.com 2019 - 2024. All rights reserved.