TypeError: b.lat is not a function - Heatmap Layer
TypeError: b.lat is not a function - Heatmap Layer
我一直在努力弄清楚为什么我的加热层会出现上述问题。我在座位上看到的答案解决了不正确的 LatLng 设置,但是我的标记的 LatLng 数组工作得很好。
我也尝试过添加权重,尽管 api 说它是可选的。
var map;
function initMap(resultSet) {
map = new google.maps.Map(document.getElementById('maps'), {
center: {
lat: 40.8173,
lng: -96.7005
},
zoom: 16,
mapTypeId: 'satellite'
});`
var labels = [];
var locations = [];
for (var i = 0; i < resultSet.length; i++) {
labels.push(resultSet[i][0]);
locations.push({
lat: parseFloat(resultSet[i][3]),
lng: parseFloat(resultSet[i][4])
});
if (data[0] == '1') {
var marker = new google.maps.Marker({
position: locations[i],
map: map,
title: labels[i]
});
marker.setMap(map);
}
}
if (data[0] == '2') {
var heatmap = new google.maps.visualization.HeatmapLayer({
data: locations,
});
heatmap.setMap(map);
}
}
HeatmapLayer
is one of the remaining places you can't use a google.maps.LatLngLiteral
for a position, it must be a google.maps.LatLng
对象。
(你得到的错误是因为匿名对象 LatLngLiteral
没有 .lat()
方法,它有一个 .lat
属性)。
变化:
for (var i = 0; i < resultSet.length; i++) {
labels.push(resultSet[i][0]);
locations.push({
lat: parseFloat(resultSet[i][3]),
lng: parseFloat(resultSet[i][4])
});
if (data[0] == '1') {
var marker = new google.maps.Marker({
position: locations[i],
map: map,
title: labels[i]
});
marker.setMap(map);
}
}
收件人:
for (var i = 0; i < resultSet.length; i++) {
labels.push(resultSet[i][0]);
locations.push(new google.maps.LatLng(
parseFloat(resultSet[i][3]),
parseFloat(resultSet[i][4])
));
if (data[0] == '1') {
var marker = new google.maps.Marker({
position: locations[i],
map: map,
title: labels[i]
});
marker.setMap(map);
}
}
我一直在努力弄清楚为什么我的加热层会出现上述问题。我在座位上看到的答案解决了不正确的 LatLng 设置,但是我的标记的 LatLng 数组工作得很好。
我也尝试过添加权重,尽管 api 说它是可选的。
var map;
function initMap(resultSet) {
map = new google.maps.Map(document.getElementById('maps'), {
center: {
lat: 40.8173,
lng: -96.7005
},
zoom: 16,
mapTypeId: 'satellite'
});`
var labels = [];
var locations = [];
for (var i = 0; i < resultSet.length; i++) {
labels.push(resultSet[i][0]);
locations.push({
lat: parseFloat(resultSet[i][3]),
lng: parseFloat(resultSet[i][4])
});
if (data[0] == '1') {
var marker = new google.maps.Marker({
position: locations[i],
map: map,
title: labels[i]
});
marker.setMap(map);
}
}
if (data[0] == '2') {
var heatmap = new google.maps.visualization.HeatmapLayer({
data: locations,
});
heatmap.setMap(map);
}
}
HeatmapLayer
is one of the remaining places you can't use a google.maps.LatLngLiteral
for a position, it must be a google.maps.LatLng
对象。
(你得到的错误是因为匿名对象 LatLngLiteral
没有 .lat()
方法,它有一个 .lat
属性)。
变化:
for (var i = 0; i < resultSet.length; i++) {
labels.push(resultSet[i][0]);
locations.push({
lat: parseFloat(resultSet[i][3]),
lng: parseFloat(resultSet[i][4])
});
if (data[0] == '1') {
var marker = new google.maps.Marker({
position: locations[i],
map: map,
title: labels[i]
});
marker.setMap(map);
}
}
收件人:
for (var i = 0; i < resultSet.length; i++) {
labels.push(resultSet[i][0]);
locations.push(new google.maps.LatLng(
parseFloat(resultSet[i][3]),
parseFloat(resultSet[i][4])
));
if (data[0] == '1') {
var marker = new google.maps.Marker({
position: locations[i],
map: map,
title: labels[i]
});
marker.setMap(map);
}
}