10

我正在使用标记点和连接它们的线在地图上显示跟踪。

问题是我想在链接上显示行进方向;

所以我不知道如何在标记点之间的线上显示方向。

有什么办法可以完成这个任务。

4

1 回答 1

27

在折线上显示方向可以用箭头来完成。

google maps api3 提供了一些预定义的路径。

请参阅文档的这一部分 - SYMBOLS ON POLYLINE,可用于箭头以外的其他用途。

看看这个使用箭头指示折线上方向的小提琴。

带有单个符号的演示

您还可以设置repeat符号的属性,使其定期重复。

带有重复符号的演示

JavaScript-

var iconsetngs = {
    path: google.maps.SymbolPath.FORWARD_CLOSED_ARROW
};
var polylineoptns = {
    path: markers,
    strokeOpacity: 0.8,
    strokeWeight: 3,
    map: map,
    icons: [{
        icon: iconsetngs,
        offset: '100%'}]
};
polyline = new google.maps.Polyline(polylineoptns);

这个预定义符号的有趣特征(特别是向前箭头)是箭头指向您的坐标所在的确切方向。因此,这显然是为了在跟踪系统中指示方向。

更新:不确定您在评论中要表达的意思。标记可以以相同的方式显示。这是使用循环添加标记并使用箭头设置折线的代码:

带有标记和折线的演示

Javascript:

var polylineoptns = {
        strokeOpacity: 0.8,
        strokeWeight: 3,
        map: map,
        icons: [{
            repeat: '70px', //CHANGE THIS VALUE TO CHANGE THE DISTANCE BETWEEN ARROWS
            icon: iconsetngs,
            offset: '100%'}]
    };
    polyline = new google.maps.Polyline(polylineoptns);
    var z = 0;
    var path = [];
    path[z] = polyline.getPath();
    for (var i = 0; i < markers.length; i++) //LOOP TO DISPLAY THE MARKERS
    {
        var pos = markers[i];
        var marker = new google.maps.Marker({
            position: pos,
            map: map
        });
        path[z].push(marker.getPosition()); //PUSH THE NEWLY CREATED MARKER'S POSITION TO THE PATH ARRAY
    }
于 2013-01-03T12:11:56.070 回答