Произошла ошибка, которой не было на предыдущей пузырьковой карте, которую я сделал. Я использовал тот же код, но просто включил новые данные в той же структуре, включая координаты широты и долготы.
Это ошибка в консоли:
TypeError: Cannot read property '0' of null
at SVGCircleElement.<anonymous> (bubbleMap_top_100_gun_dealing_cities.html:108)
at SVGCircleElement.<anonymous> (d3.v4.min.js:2)
at ut.each (d3.v4.min.js:2)
at ut.attr (d3.v4.min.js:2)
at bubbleMap_top_100_gun_dealing_cities.html:107
at Object.<anonymous> (d3.v4.min.js:2)
at k.call (d3.v4.min.js:2)
at XMLHttpRequest.e (d3.v4.min.js:2)
Это часть рассматриваемого кода:
var bubbles = svg.append('g')
.attr('class', 'bubble')
.selectAll('circle')
.data(data)
.enter()
.append('circle')
.attr('cx', function(d) {
return projection([d.lon, d.lat])[0];
})
.attr('cy', function(d) {
return projection([d.lon, d.lat])[1];
})
Моя предыдущая карта использует тот же код и не имеет такой проблемы.
Круги рисуются в углу страницы, если я попробую:
.attr('cx', function(d) {
return projection([d.lon, d.lat][0]);
})
.attr('cy', function(d) {
return projection([d.lon, d.lat][1]);
})
Любые идеи?
ОБНОВЛЕНИЕ: в CSV было пустое значение! Дох.
У меня было ощущение, что это CSV! Починил это. Спасибо! :)
удалите операторы return внутри вашего data.forEach(). Как вы предотвратите, что большие круги маскируют меньшие круги, вы не сортируете данные?
Данные сортируются в CSV через Excel. И пузыри прозрачные.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


У вас есть только 1 объект с пустыми значениями, отфильтруйте его: jsfiddle.net