#javascript #leaflet #heatmap
#javascript #листовка #тепловая карта
Вопрос:
У меня есть 2-мерный массив location, который содержит широты и долготы, которые я хотел бы представить в своей тепловой карте. Я создал 2 дополнительных массива из location:
for(var i=0;i<location.length;i ){
lat_array=location[i][0]
long_array=location[i][1]
};
let testData = {
max: 8,
data: [{lat:lat_array, lng:long_array, count:8}]
}; //Count is random
let cfg={
"radius": 40,
"maxOpacity": 0.8,
"scaleRadius": false,
"useLocalExtrema": false,
latField: 'lat',
lngField:'lng',
valueField:'count'
};
let heatmapLayer = new HeatmapOverlay(cfg);
mymap.addLayer(heatmapLayer);
heatmapLayer.setData(testData);
Когда я запускаю страницу, я получаю сообщение об ошибке, в котором говорится, что долгота и широта не могут быть массивами, и я попытался запустить его с определенными значениями (lat_array [1], long_array [1]), и это сработало. Итак, я пытаюсь выяснить, как добавить все широты и долготы в массив местоположений, значения которых меняются каждый раз.
Ответ №1:
Ваш data
формат неверен. У вас есть массив с одним объектом, чьи lat
lng
свойства и являются массивами lat
s и lng
s. Вам нужен массив объектов, каждый объект формата:
[
{
lat: latitude_value,
lng: longitude_value,
count: count
},
{
lat,
lng,
count,
}
{ ... },
...
]
Я не уверен, откуда берутся ваши данные или в каком формате они находятся, но вам нужно манипулировать ими, чтобы перевести их в этот формат, чтобы тепловая карта работала должным образом.