首页 文章

如何在谷歌方向制作无限折线并将可拖动标记放到线上?

提问于
浏览
2

我发现在谷歌api方向上只能添加8个航路点,你知道如何绕过这个限制吗?我试图显示方向api,但放弃了这个想法 . 现在我的解决方案基于自己的折线,每次点击都会添加标记,该标记应该粘贴到该线上,接下来它应该在您拖动时移动,此处发生的是,如果有多于8个点,折线与标记不再兼容 . 也许我的方法完全不好?如何解决这个问题?

当前代码:jsfiddle

标记不在折线上:

enter image description here

2 回答

  • 2

    避免将标记放置在块的中间的一种方法是将一个放置在生成的折线的末尾,例如,在一个循环内,而不是在单击的位置 .

    for (k = 0; k < next.length; k++) {
      polyline.getPath().push(next[k]);
    
      if (z == steps.length-1 && k == next.length-1) {
        var roadMarker = new google.maps.Marker( {
          map: map, 
          position: next[k], 
          icon: "http://labs.google.com/ridefinder/images/mm_20_green.png"
        });   
      }                        
    }
    

    您还必须更改要放置在折线起点的第一个标记

    这适用于上面的代码http://jsfiddle.net/T79as/3/

  • 1

    所以,我的解决方案是在每个重要的航路点之间创建渲染DirectionRenderner(带标记?):http://jsfiddle.net/9T7Vg/

    • 可拖动标记,看起来与原始标记完全相同

    • 可拖动折线,立即计算

    • 带字母(A,B等)的自定义标记 - 这很难

    • 远距离路线计算要快得多

    • 路线可以有超过8个航路点(当用户想要在标记之间放置第9个航点时,您可以改进脚本以自动分割路线)

    因此,这个解决方案实际上比Google Map 中的原始解决方案更好,特别是对于长路线 .

相关问题