2

我发现可以在 google api 方向上只添加八个航点,你知道如何绕过这个限制吗?我试图显示方向api,但放弃了这个想法。现在我的解决方案是基于自己的折线,每次单击都会添加应该粘在该线上的标记,接下来随着您拖动它应该移动,这里发生的是,如果有超过 8 个点的折线与标记不再兼容。也许我的方法完全不好?如何解决这个问题?

当前代码:jsfiddle

标记不在折线上:

在此处输入图像描述

4

2 回答 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/上面的代码

于 2012-04-17T02:04:14.397 回答
1

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

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

所以这个解决方案实际上比谷歌地图中的原始解决方案要好,尤其是在长途路线上。

于 2012-04-17T13:49:12.913 回答