Существует множество примеров рисования SVG-маршрутов из геоданных D3 с использованием инструментов проектирования траектории D3. Например, here's one I wrote earlier (D3 v3) и вот recent example using D3 v4.Как получить проецируемые строки определения пути (а не элементы SVG) из набора данных GeoJSON с D3?
Все они выглядят примерно так:
svg.append("path")
.data(topojson.feature(datafile, datafile.objects.featureOfInterest))
.attr("class", "land")
.attr("d", pathDefinitionObject);
... где файл данные считываются и связан с некоторой SVG, создавая связанные пустые пути, то объект определения пути D3, связанный с определенной проекцией выглядит на данных и использует его для добавления строк определения пути SVG к атрибутам d
этих путей.
Я хочу, эти строки определения пути, но как строки, не касаясь SVG. Я хочу использовать эти строки с Raphael, чтобы я мог рисовать пути в браузерах, которые не поддерживают SVG, потому что конкретный проект требует поддержки институциональных клиентов, которые из-за устаревших требований к программному обеспечению и корпоративных политик не обновили IE8 (я знаю , Я знаю...).
D3, очевидно, способен определять эти строки, но я не вижу очевидного способа получить объект определения пути для вывода строк без привязки к элементу SVG DOM.
Как я могу получить строки без SVG на странице?
Я пытаюсь использовать минимальный набор D3 v4's "microlibraries" для этого, так что бонусные баллы за ответ с наименьшим количеством зависимостей D3 (особенно, если он может избежать D3-selection.js, который является довольно большим - в идеале я Я бы хотел использовать только обработку данных D3 и вообще не использовать ее манипуляции с DOM для этого проекта).
Отлично! Не могу поверить, что все, что мне нужно было сделать, это передать объект geojson объекту пути! Это выводит одну мега-строку каждой функции в featureCollection, объединенную в одну строку 'M ... ZM ... ZM ... Z', но легко просто запустить цикл' for' вокруг 'topo.features' отделить их – user568458