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

时间:2014-10-28 12:13:54

标签: javascript google-maps google-maps-api-3

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

提前致谢

2 个答案:

答案 0 :(得分: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 :(得分: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');
    });