Google会映射折线未正确显示

时间:2014-03-07 17:42:35

标签: javascript google-maps polyline

我正在尝试将折线添加到地图中,但是在调用它们时它们不会出现

以下是我的一些代码:

var waypts = [];
var plyLine;
   function initialize() {

    plyLine = new google.maps.Polyline({
    path: waypts,
    geodesic: true,
    strokeColor: '#FF0000',
    strokeOpacity: 1.0,
    strokeWeight: 2
    });   
}

此函数在onclick侦听器中调用

function setWaypts()
{
    waypts = [];
    plyLine.setMap(null);
    for (var i = 0; i < (poiArrayList.length); i++) {
            waypts.push(new google.maps.LatLng(poiArrayList[i].mark.getPosition().lat(), poiArrayList[i].mark.getPosition().lng()))             
        };  
    plyLine.setMap(map);
}

这是log(mark.getPosition())打印出来的内容:

未捕捉错误:(51.88804094128838,-8.506078720092773)

如果我的代码出错了,有人可以停下来吗?

    function poi(id, name, description, mark, inv) {
        this.id = id;
        this.name = name;
        this.description = description;
        this.mark = mark;
        this.inv = inv;
    }
        var marker = new google.maps.Marker({
            position: location,
            draggable: false,
            map: map,
            id: markerId,
            icon: iconUrl
        });

1 个答案:

答案 0 :(得分:1)

这是不正确的:

new google.maps.LatLng(poiArrayList[i].mark.getPosition())

google.maps.LatLng对象将两个数字作为参数。最简单的修复方法是mark.getPosition()已经是google.maps.LatLng,只需使用它。

或者像这样创建一个新的:

new google.maps.LatLng(poiArrayList[i].mark.getPosition().lat(), poiArrayList[i].mark.getPosition().lng())