【问题标题】:Google Map Directions Service API 'Drag to change route' text changeGoogle Map Directions Service API“拖动更改路线”文本更改
【发布时间】:2016-11-23 06:44:50
【问题描述】:

我已经成功实现了谷歌地图方向服务 api:https://developers.google.com/maps/documentation/javascript/directions 启用了 'draggble' 选项。是否可以在悬停路线时更改拖动按钮的文本标签(附截图)?目前它说:'拖动改变路线'。我需要修改它。我检查了文档:https://developers.google.com/maps/documentation/javascript/reference,但找不到任何东西。

当前代码类似:https://developers.google.com/maps/documentation/javascript/examples/directions-draggable

请帮助我。提前致谢!

更新:我刚刚投了反对票:“可能的答案太多,或者对于这种格式来说,好的答案太长了。请添加详细信息以缩小答案范围设置或隔离可以在几段中回答的问题。"。该代码在提供的 url 中可用,我认为只能使用 google map api 提供一种解决方案。如果需要任何其他信息,请添加评论。

【问题讨论】:

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


【解决方案1】:

我的回答可能会被否决,但也许对你有用。假设这只是一个想法。因此,您可以在更改方向后更改路线的工具提示。

    directionsDisplay.addListener('directions_changed', function() {
        directionsDisplay.gd.b.setTitle('This is your new tooltip for the route.');
    });

但不幸的是,在directions_changed 事件发生时还没有标记,所以你应该以某种方式延迟设置它们的标题:

      for (var i = 0; i < directionsDisplay.b.G.length; i++){
        directionsDisplay.b.G[i].setTitle('Marker ' + i + ' tooltip');
      }

更新: 更通用的代码:

    directionsDisplay.addListener('directions_changed', function() {
        setRouteTitle(directionsDisplay, 'The new tooltip');
    });

    function setRouteTitle(dirsDispl, newTitle){
        var ddObjKeys = Object.keys(dirsDispl);
        for (var i = 0; i < ddObjKeys.length; i++){
            var obj = dirsDispl[Object(ddObjKeys)[i]];
            var ooObjKeys = Object.keys(obj);
            for (var j = 0; j < ooObjKeys.length; j++){
                var ooObj = obj[Object(ooObjKeys)[j]];
                if ((ooObj) && (ooObj.hasOwnProperty('title')) && (ooObj.hasOwnProperty('shape')) && (ooObj.shape.type == 'circle')){
                    ooObj.setTitle(newTitle);
                }
            }
        }
    };

希望这会有所帮助。

【讨论】:

  • 你太棒了!非常感谢 :D !!
  • 您能否检查一下并告诉我此代码是否仍然有效?我认为有些事情发生了变化,您的代码不再有效!
  • 不,我得到:“TypeError:directionsDisplay.gd is undefined”错误!
  • 你再次帮助了我 :).. 非常感谢。请注意,stackoverflow 不会就答案更新提供任何通知。我每天都查看这篇文章,但从未注意到您的更新!因此,将来,请在更新答案后添加新评论!祝你有美好的一天!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-01
  • 2020-07-22
  • 1970-01-01
  • 2011-11-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多