Spec-Zone.ru › D3.js 7

d3-geo-polygon

Вырезание и геометрические операции для сферических полигонов.

Установка

Если вы используете NPM, npm install d3-geo-polygon. В противном случае, скачайте последнюю версию. Также вы можете загрузить напрямую с unpkg. Поддерживаются среды AMD, CommonJS и vanilla. В vanilla среде экспортируется глобальная переменная d3:

<script src="https://unpkg.com/d3-geo@3"></script>
<script src="https://unpkg.com/d3-geo-polygon@1"></script>
<script>

// new projection
var projection = d3.geoDodecahedral();

// polyhedral projections don’t need SVG or canvas clipping anymore
var projection = d3.geoPolyhedralCollignon();

// arbitrary polygon clipping on any projection
var projection = d3.geoEquirectangular()
    .preclip(d3.geoClipPolygon({
      type: "Polygon",
      coordinates: [[[-10, -10], [-10, 10], [10, 10], [10, -10], [-10, -10]]]
    }));

</script>

Справочник API

d3.geoClipPolygon(polygon) · Исходный код, Примеры

Принимая на вход GeoJSON полигон или многоугольник, возвращает функцию вырезания, подходящую для проекции.preclip.

clip.polygon()

Принимая на вход функцию clipPolygon, возвращает GeoJSON полигон.

d3.geoIntersectArc(arcs) · Исходный код, Примеры

Принимая на вход две сферические дуги [point0, point1] и [point2, point3], возвращает их пересечение или undefined, если пересечения нет. См. «Сферическое пересечение».

Проекции

d3-geo-polygon добавляет вырезание полигонов к полиэдральным проекциям из d3-geo-projection. Таким образом, он заменяет следующие символы:

d3.geoPolyhedral(tree, face) · Исходный код, Примеры

Определяет новую полиэдральную проекцию. дерево — это остовное дерево узлов граней полигона; каждому узлу назначается матрица преобразования node.transform. Функция face возвращает соответствующий узел для заданных лямбда и фи в радианах.

polyhedral.tree() возвращает остовное дерево полиэдра, по которому можно определить центры граней, полигоны, общие грани и т. д.
d3.geoPolyhedralButterfly() · Исходный код

Проекция бабочки гномонической.

d3.geoPolyhedralCollignon() · Исходный код

Проекция бабочки Коллингона.

d3.geoPolyhedralWaterman() · Исходный код

Проекция бабочки, вдохновлённая дизайном Стива Уотермана.

Введены новые проекции:

d3.geoPolyhedralVoronoi([parents], [polygons], [faceProjection], [faceFind]) · Исходный код

Возвращает полиэдральную проекцию, основанную на polygons, организованных в дереве в соответствии со списком parents. polygons — это GeoJSON FeatureCollection ячеек geoVoronoi, которые должны указывать соответствующие узлы (см. d3-geo-voronoi). Необязательная функция faceProjection передаётся в d3.geoPolyhedral() — обратите внимание, что гномоническая проекция на узлах полигонов — единственная faceProjection, которая работает в общем случае.

Методы .parents([parents]), .polygons([polygons]), .faceProjection([faceProjection]) устанавливают и считывают соответствующие параметры. Используйте .faceFind(voronoi.find) для более быстрых результатов.

d3.geoCubic() · Исходный код, Примеры

Кубическая проекция.

d3.geoDodecahedral() · Исходный код, Примеры

Проекция икосаэдра.

d3.geoIcosahedral() · Исходный код, Примеры

Икосаэдрическая проекция.

d3.geoAirocean() · Исходный код, Примеры

Проекция Аэроокеан Бакминстера Фуллера (также известная как «Димаксион»), основанная на очень специфической форме икосаэдра, которая позволяет отображать непрерывные формы материков. Преобразование треугольника Фуллера, сформулированное Робертом У. Греем (и реализованное Филиппом Ривьером), делает проекцию почти равновеликой.

d3.geoCahillKeyes() · Исходный код, Примеры
d3.geoCahillKeyes

Проекция Кейлла-Кейса, разработанная Джином Кейсом (1975), основана на восьмиугольном дизайне Бернарда Дж. С. Кейлла 1909 года. Реализация Мари Джо Граса (2011), перенесенная в D3 Энрико Спинелли (2013).

d3.geoImago() · Исходный код, Примеры

Проекция Imago, разработанная Джастином Кунимуне (2017), вдохновлена дизайном АутхаГраф Хаджиме Нарукавы (1999).

imago.k([k])

Показатель степени. Полезные значения включают 0,59 (по умолчанию, минимизирует угловые искажения материков), 0,68 (дает наилучшее приближение АутхаГраф) и 0,72 (предотвращает изгибы в сетке).

imago.shift([shift])

Горизонтальное смещение. По умолчанию 1,16.

d3.geoTetrahedralLee() · Исходный код, Примеры
d3.geoLeeRaw

Конформная проекция тетраэдра Ли.

По умолчанию угол равен +30°, вершина вверх (-30° для основания вверх, вершина вниз).

По умолчанию аспект использует projection.rotate([30, 180]) и помещает Северный полюс в центр треугольника — используйте projection.rotate([-30, 0]) для Южного аспекта.

d3.geoCox() · Исходный код, Примеры
d3.geoCoxRaw

Конформная проекция Кокса.

d3.geoComplexLog([planarProjectionRaw[, cutoffLatitude]]) · Исходный код, Пример
d3.geoComplexLogRaw([planarProjectionRaw])

Комплексный логарифмический вид. Эта проекция основана на работах Йоахима Бёттгера и др.:

  • Detail‐In‐Context Visualization for Satellite Imagery (2008)
  • Complex Logarithmic Views for Small Details in Large Contexts (2006)

Указанная проекция planarProjectionRaw используется для проекции на комплексную плоскость, к которой применяется комплексный логарифм. Рекомендуются равновеликая азимутальная (по умолчанию) или равнорасстояная азимутальная проекции.

cutoffLatitude — это широта, относительная к центру проекции, при которой производится обрезка/вырезание проекции; меньшие значения приводят к большему детализации вокруг центра проекции. Значение должно быть < 0, потому что комплексный логарифм проецирует начало координат в бесконечность.

complexLog.planarProjectionRaw([projectionRaw])

Если projectionRaw указан, устанавливает план проекции. См. выше. Если projectionRaw не указан, возвращает текущую план проекции.

complexLog.cutoffLatitude([latitude])

Если latitude указана, устанавливает широту обрезки. См. выше. Если latitude не указана, возвращает текущую широту обрезки.

© 2010–2023 Michael Bostock
Licensed under the BSD License.
https://github.com/d3/d3-geo-polygon

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API