在Google地图中创建非循环折线

时间:2014-09-27 18:39:34

标签: javascript google-maps

我有一个坐标数组,我想在Maps API v3中创建PolyLines。到目前为止,我已经完成了以下工作。

    for (i = 0; i < locations.length; i++) {  //locations is an array of Lat, Long
        var a = new google.maps.LatLng(locations[i][0], locations[i][1]);
        plans.push(a)
        bounds.extend(a);
    }

    var roadPath = new google.maps.Polyline({
        path: plans,
        geodesic: true,
        strokeColor: '#FF0000',
        strokeOpacity: 1.0,
        strokeWeight: 2
    });
    roadPath.setMap(map);

现在的问题是,在创建折线时,最后一个和第一个点也如图所示连接

PolyLine

其中最左边的点是第一个点,最右边的是数组locations中的最后一个坐标。如何让红线只留在路上,而不是像乌鸦一样飞过?

2 个答案:

答案 0 :(得分:0)

而不是pushing all点同时pass pair点,那么你的问题就会得到解决。尝试使用pair of points绘制路径。例如:第一次send origin and first点,然后second pair is first point and second point等等。

例如:supoose你有点数组:origin,first,seond,third,......,last,destination。然后发送origin,first作为first pair然后发送first,second作为second pair },second and thirdthird pair,.....,last,destinationlast pair,用于谷歌指导服务或折线。

这里确保原点和目的地不相同,如果它们相同则不发送最后一对。

答案 1 :(得分:0)

这可能是由于:
1.重复的数据集。您可能已将两组或更多组数据推入折线路径,因此当结束时,它会连接到原始坐标并形成循环。 2.您将原始坐标添加到缓冲区的末尾。