我正在尝试将折线添加到地图中,但是在调用它们时它们不会出现
以下是我的一些代码:
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
});
答案 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())