将坐标数组转换为google.maps.LatLng数组

时间:2018-12-02 15:18:17

标签: javascript arrays angular google-maps-api-3 heatmap

尝试创建google.maps.LatLng数组时出现以下错误:

ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'NaN' of undefined

这就是我在做什么:

我正在动态填充GPS坐标的二维数组,如下所示:

const array = [
    [1.23123, -1.23123],
    [4.56456, -4.56456],
    [7.89789, -7.89789]
]

我尝试通过以下操作将其转换为google.maps.LatLng数组:

const latLngArray = [];

for (let i = 0; i < array.length; i++) {
  latLngArray.push(new google.maps.LatLng(array[i][0], array[i][1]));
}

然后将其分配给我的新HeatmapLayer,如下所示:

this.heatmap = new google.maps.visualization.HeatmapLayer({
  data: latLngArray,
  map: this.map
});

地图加载得很好,但是与坐标相关的点却没有(我得到了这个错误)。

但是,如果我手动创建以下函数并将其分配给HeatmapLayer中的data字段,它将起作用:

getPoints() {
    return [
      new google.maps.LatLng(1.23123, -1.23123),
      new google.maps.LatLng(4.56456, -4.56456),
      new google.maps.LatLng(7.89789, -7.89789)
    ]
}

我在做什么错了?

1 个答案:

答案 0 :(得分:1)

您可以写类似....

let latLngArray = [];

for (let i = 0; i < array.length; i++) {
  const gData = new google.maps.LatLng(array[i][0], array[i][1]);
  latLngArray.push(gData);
}