Спасибо @GerardoFurtado и @altocumulus, ответ был на его комментарии, здесь объединяются все.
Есть некоторые глобальные значения (возможно, не лучшая практика)
var g;
В контексте «после загрузки страницы» запустите
svg = d3.select("etc..")
g = svg.append("g")
// ...
d3.json("file.json").then(ready);
, где функция ready()
имеет вид
function ready(shp) {
var data1 = topojson.feature(shp, shp.item1);
//... draw map appenging features to global g
}
Смотрите окончательный результат решения здесь .