0

我希望能帮助我理解控制台错误的原因:在这种情况下,“构造函数参数 0 的值无效”。我有一张地图,当您单击标记时,将通过标记 On-Click Listener 显示路径。当位置数组为“本地”(在脚本文件中)时,它可以正常工作。我希望将点数组包含在 Fusion Table 记录中,以控制标记的其他属性。以下方法可以正常工作:

    var path = [new google.maps.LatLng(46.2932212,-122.8215887),new google.maps.LatLng(46.2937995,-122.8194726)];

    var polyline = new google.maps.Polyline({path: path, strokeColor: "#CDCDCD", strokeOpacity: 0, icons:[lineIcon2],strokeWeight: 2});

    polyline.setMap(map);

在我的 Fusion Table 中,我有一列“path2”(格式为文本),其中包含与上面的“路径”变量相同的值:

    [new google.maps.LatLng(46.2932212,-122.8215887),new google.maps.LatLng(46.2937995,-122.8194726)]

然后我更新了代码:

  var path = path2;

  var polyline = new google.maps.Polyline({path: path, strokeColor: "#CDCDCD", strokeOpacity: 0, icons:[lineIcon2],strokeWeight: 2});

  polyline.setMap(map);

触发点击事件时,我在控制台中收到错误消息:“构造函数参数 0 的值无效:[new google.maps.LatLng(46.2932212,-122.8215887),new google.maps.LatLng(46.2937995,-122.8194726) ]"

这表明表中的值正在按我的预期被引入,但是发生了一些变化以使其出错,我不明白插入数据时发生了什么导致错误

(我知道还有其他可能更好的方法,例如 Fusion Table Layers,来实现这种折线显示,但仍然想了解这种特殊的错误场景。)

谢谢你的建议!

4

1 回答 1

0

这就是问题。文本字符串对路径无效,它必须是 google.maps.LatLng 对象的数组:

在我的 Fusion Table 中,我有一列“path2”(格式为文本)

您需要转换此字符串:

"[new google.maps.LatLng(46.2932212,-122.8215887),new google.maps.LatLng(46.2937995,-122.8194726)]"

进入 google.maps.LatLng 对象的数组。

SO的这些帖子提供了如何做到这一点的选项:

于 2013-07-18T13:09:55.067 回答