Подтвердить что ты не робот

D3: Объединить внутренние пути SVG?

У меня есть элемент svg, состоящий из множества различных объектов path, каждый из которых представляет одно состояние U.S. enter image description here

http://jsfiddle.net/jGjZ2/

Я хотел бы объединить восточную территорию (золото) в один объект пути без видимых делений.

Конечный результат должен выглядеть следующим образом (игнорируйте неточности): enter image description here

Я использую D3. Нет данных GeoJSON или TopoJSON - карта svg напрямую встроена в html (см. Jsfiddle).

Спасибо большое!

4b9b3361

Ответ 1

Предполагая, что вы можете игнорировать указанное ограничение манипулирования существующим SVG-изображением (которое кажется произвольным ограничением, учитывая готовность картографических границ в более простых форматах управления), вы можете использовать topojson.mesh, чтобы объединить несколько многоугольников. Хотя, обратите внимание, что этот подход имеет несколько ограничений, описанных в этом примере:

merged polygons

Другим простым подходом является просто рисовать выделенные многоугольники дважды: один раз с густым черным штрихом и без заливки, а второй раз сверху с оранжевым заполнением и без штриха. Это обеспечивает такой же эффект, не требуя топологической манипуляции:

merging polygons

Я полагаю, что если вам действительно нужно было, вы могли бы обратиться к элементу SVG и сделать то же самое, извлекая векторные данные, но это будет проще, если вы начнете с чистых данных.