私は次のコードを持っています。これは最初にうまくマップをロードしますが、それ以上の "runHeatmap()" 呼び出しエラー:
これは Firbug (firefox) からのエラーです。
TypeError: g[bx] は定義されていません
3号線
これはChromeからのエラーです:
Uncaught TypeError: 未定義のプロパティ 'NaN' を読み取ることができません
(匿名関数)
H.forEach %7Bmain,visualization%7D.js:28
EQ
TQ
はあ
(無名関数) %7Bmain,visualization%7D.js:34
コード:
var map = null, heatmap = null, heatmapData = [];
map = new google.maps.Map(document.getElementById('map'), {
center: new google.maps.LatLng(20, 12),
zoom: 3,
mapTypeId: google.maps.MapTypeId.SATELLITE
});
function runHeatmap() {
var pointArray = new google.maps.MVCArray(heatmapData);
if (!heatmap) {
heatmap = new google.maps.visualization.HeatmapLayer({
data: pointArray,
map: map
});
} else {
heatmap.setData(pointArray);
}
}
//receives [["34.3565","-29.23434"],["-3.4857","64.3984"]]
socket.on('coordArr', function(d){
if (d.length > 0) {
var i=0;
while(i < d.length) {
var lat = d[i][0].trim();
var lng = d[i][1].trim();
heatmapData.push(new google.maps.LatLng(lat,lng));
i++;
}
runHeatmap();
}
});
//receives ["-8.284374","94.2837"]
socket.on('coord', function (d) {
var lat = d[0].trim();
var lng = d[1].trim();
heatmapData.push(new google.maps.LatLng(lat,lng));
runHeatmap();
});
- 衛星を含む Google マップは正常に読み込まれます。
- ソケットが開かれると、ブラウザは「coordArr」イベントを受け取り、そのデータが適切にプッシュされ、次のようなヒートマップが生成されます。
- 次に、関数が「runHeatmap();」を呼び出すと、ソケットは「coord」イベントと正しいデータを受け取ります。エラーが発生します。
ヒートマップを破棄して書き直す必要がありますか? リソースがかなり無駄に思えます。既存のヒートマップを更新するために間違った方法を使用しているだけですか?