Javascript 如何在google方向上创建无限多段线,并将可拖动标记适配到该线?

Javascript 如何在google方向上创建无限多段线,并将可拖动标记适配到该线?,javascript,google-maps-api-3,google-maps-markers,map-directions,google-polyline,Javascript,Google Maps Api 3,Google Maps Markers,Map Directions,Google Polyline,我发现在GoogleAPI方向上只添加八个航路点是可能的,你知道如何绕过这个限制吗?我尝试过显示方向api,但放弃了这个想法。现在,我的解决方案是基于自己的多段线,每次单击都会添加应粘贴到该线上的标记,然后在拖动时,标记会随之移动,如果有超过8个点,则多段线与标记不再兼容。也许我的方法完全不好?如何解决这个问题 当前代码: 标记不在多段线上: 避免标记放在块中间的一种方法是在生成的折线的末尾放置一个,例如,在一个循环内,而不是点击的地方。 for (k = 0; k < next.leng

我发现在GoogleAPI方向上只添加八个航路点是可能的,你知道如何绕过这个限制吗?我尝试过显示方向api,但放弃了这个想法。现在,我的解决方案是基于自己的多段线,每次单击都会添加应粘贴到该线上的标记,然后在拖动时,标记会随之移动,如果有超过8个点,则多段线与标记不再兼容。也许我的方法完全不好?如何解决这个问题

当前代码:

标记不在多段线上:


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

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"
    });   
  }                        
}
for(k=0;k
还必须更改要放置在多段线起点的第一个标记


这将应用上述代码,因此,我的解决方案是在每个重要航路点(带标记?)之间创建渲染方向渲染器:

  • 看起来与原始标记完全相同的可拖动标记
  • 具有即时计算功能的可拖动多段线
  • 带有字母(A、B等)的自定义标记-这很困难
  • 长距离的路由计算要快得多
  • 路线可以有8个以上的航路点(当用户希望在标记之间放置第9个航路点时,您可以改进脚本以自动分割路线)

因此,这个解决方案实际上比谷歌地图中的原始解决方案要好,尤其是对于长路线。

是的,我找到了解决方案-在一张地图上渲染几个方向渲染器,例如,在这个解决方案中,您不限于8个航路点,并且道路重新计算速度非常快。这能满足你的要求吗?这个概念更好。谢谢。哦,你的意思是说这些标记只能放在路上吗?正如我所见,它们被放置在任何地方,但经过路线计算后,它们被移动到最近的道路。有趣-如果你愿意,我会尝试修复它,但事实上这可能是“功能,而不是bug”-你有目的地或起源的EXEXT位置-不是“最近可用”好的,我得到了这个-我刚刚添加了在“方向改变”事件上移动标记的部分,我把它弄得太复杂了,但现在看起来很简单。非常感谢。我很高兴我能提供帮助-在业余时间,我将制作支持超过8个“via”标记的增强版,并将其放在这里。