我是google maps y JS的新手,我遇到了这个问题。
这是我的代码:
var map, heatmap, data, position;
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
zoom: 13,
center: {lat: 37.775, lng: -122.434},
mapTypeId: google.maps.MapTypeId.SATELLITE
});
heatmap = new google.maps.visualization.HeatmapLayer({
data: makeRequest('jsonmapasenal.php', function(data) {
data = JSON.parse(data.responseText);
data2 = [], range = data.length;
for (i = 0; i < data.length; i++) {
data2[i]= new google.maps.LatLng(parseFloat(data[i].lat), parseFloat(data[i].lon)); ---------Here is the problem
}
console.log(data2);
return data2;
}),
map: map
});
}
function toggleHeatmap() {
heatmap.setMap(heatmap.getMap() ? null : map);
}
function changeGradient() {
var gradient = [
'rgba(0, 255, 255, 0)',
'rgba(0, 255, 255, 1)',
'rgba(0, 191, 255, 1)',
'rgba(0, 127, 255, 1)',
'rgba(0, 63, 255, 1)',
'rgba(0, 0, 255, 1)',
'rgba(0, 0, 223, 1)',
'rgba(0, 0, 191, 1)',
'rgba(0, 0, 159, 1)',
'rgba(0, 0, 127, 1)',
'rgba(63, 0, 91, 1)',
'rgba(127, 0, 63, 1)',
'rgba(191, 0, 31, 1)',
'rgba(255, 0, 0, 1)'
]
heatmap.set('gradient', heatmap.get('gradient') ? null : gradient);
}
function changeRadius() {
heatmap.set('radius', heatmap.get('radius') ? null : 20);
}
function changeOpacity() {
heatmap.set('opacity', heatmap.get('opacity') ? null : 0.2);
}
function makeRequest(url, callback) {
var request;
if (window.XMLHttpRequest) {
request = new XMLHttpRequest(); // IE7+, Firefox, Chrome, Opera, Safari
} else {
request = new ActiveXObject("Microsoft.XMLHTTP"); // IE6, IE5
}
request.onreadystatechange = function() {
if (request.readyState == 4 && request.status == 200) {
callback(request);
}
}
request.open("GET", url, true);
request.send();
}在控制台中,结果是:
未捕获Gc {消息:"not an Array or MVCArray",名称:"InvalidValueError",堆栈:"Error↵at new Gc (https://maps.googleapis.com/m…_.K,_.K,_.K,_.K,_.K,_.K,_.K,_.K,_.K0:_.K1:_.K2:_.K3:_.K4:_.K5:_.K6:_.K7:_.K8:_.K9:_.K10:_.K11:_.K12:_.K13:_.K14:_.K15:_.K16:_.K17:_.K18::_.K24:_.K25:_.K26:_.K27:_.K28:_.K29:_.K30:_.K31:_.K32:_.K33:_.K34:_.K35:_.K36:_.K37:_.K38:_.K39:_.K40:_.K41:_.K42::_.K48:_.K49:_.K50:_.K51:_.K52:_.K53:_.K54:_.K55:_.K56:_.K57:_.K58:_.K59:_.K60:_.K61:_.K62:_.K63:_.K64:_.K65:_.K66::_.K72:_.K73:_.K74:_.K75:_.K76:_.K77:_.K78:_.K79:_.K80:_.K81:_.K82:_.K83:_.K84:_.K85:_.K86:_.K87:_.K88:_.Klength: 89__proto__:Array
如果我包括“像这样:
新建‘data2i= google.maps.LatLng(parseFloat('+ datai.lat +'),parseFloat('+ datai.lon +'))';
执行数组填充,但控制台仍然抛出错误:不是数组或MVCArray
请帮帮我!
发布于 2017-03-13 19:45:54
我不知道问题是什么,但当我开始测试Heatmap时,我也遇到了一些问题。在这里,我有一个简单的热图调用,这是我几周前发出的。看看我在我的HeatMap上做了什么。附言:下次试着对你的问题说得更具体些……
function myFunction {
mapOptions = {
center: new google.maps.LatLng(some_lat, some_long),
zoom: 9,
mapTypeId: google.maps.MapTypeId.HYBRID
};
map = new google.maps.Map(document.getElementById('googleMap'), mapOptions);
var heatmap = new google.maps.visualization.HeatmapLayer({
data: arrHeatmap // this array contains an x number of google.Maps.LatLng
});
heatmap.setMap(map);
console.log("Heatmap loaded successfully!");
}
https://stackoverflow.com/questions/42741300
复制相似问题