Документы D3 по географическому признаку c генераторы пути покрыли ли вы (выделение мое):
Генератор пути географии c, d3.geoPath , аналогичен генераторам формы в d3-форме: с учетом геометрии или объекта Geo JSON, он генерирует строку данных SVG-пути или отображает путь в Canvas.
Вы можете передать объект Geo JSON в генератор пути и заставить его создать данные пути - то есть команды пути - которые затем назначаются свойству d
свойства <path>
элемент. Это в основном то, что происходит при кодировании
.data(features)
// ... enter, append, etc...
.attr("d", path);
Это утверждение может быть переписано как:
.data(features)
// ... enter, append, etc...
.attr("d", d => path(d));
или, еще более явно:
.data(features)
// ... enter, append, etc...
.attr("d", feature => path(feature));
Глядя на В последнем фрагменте кода становится ясно, что D3 - с помощью средств привязки данных - создает элемент <path>
для каждого объекта и передает этот объект, то есть данные, связывающие элемент <path>
, с генератором пути path
для создания d
Строка команды свойства path.
Обладая этими знаниями, вы можете легко создавать строки данных пути для всех ваших функций, не создавая никаких узлов DOM:
const pathData = features.map(feature => path(feature));
Более кратко, вы можете просто передать функцию генератора на .map()
:
const pathData = features.map(path);