d3-geo-polygon
Вырезание и геометрические операции для сферических полигонов.
Установка
Если вы используете NPM, npm install d3-geo-polygon. В противном случае, загрузите последнюю версию. Вы также можете загрузить напрямую с unpkg. Поддерживаются среды AMD, CommonJS и vanilla. В vanilla среде экспортируется глобальная переменная d3:
<script src="https://unpkg.com/d3-geo@1"></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 polygon или multipolygon, возвращает функцию вырезания, подходящую для projection.preclip.
clip.polygon()
Принимая на вход функцию clipPolygon, возвращает GeoJSON полигон.
d3.geoIntersectArc(arcs) · Исходный код, Примеры
Принимая на вход две сферические дуги [point0, point1] и [point2, point3], возвращает их пересечение или undefined, если пересечения нет. См. «Сферическое пересечение».
Проекции
d3-geo-polygon добавляет вырезание полигонов к полиэдральным проекциям из d3-geo-projection. Таким образом, он заменяет следующие символы:
d3.geoPolyhedral(tree, face) · Исходный код, Примеры
Определяет новую полиэдральную проекцию. tree — это остовное дерево узлов граней полигона; каждому узлу присваивается матрица преобразования node.transform. Функция face возвращает соответствующий узел для заданных lambda и phi в радианах.
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() · Исходный код, Примеры
Проекция Имаго, разработанная Джастином Кунимуне (2017), вдохновлена дизайном Аутаграфа Хаджиме Нарукавы (1999).
imago.k([k])
Показатель степени. Полезные значения включают 0,59 (по умолчанию, минимизирует угловые искажения континентов), 0,68 (дает самое близкое приближение к Аутаграфу) и 0,72 (предотвращает изгибы на градусном круге).
imago.shift([shift])
Горизонтальный сдвиг. По умолчанию 1,16.
d3.geoTetrahedralLee() · Исходный код, Примеры
d3.geoLeeRaw
Конформная проекция тетраэдра Ли.
По умолчанию angle равен +30°, вершина вверх (-30° для основания вверх, вершины вниз).
Проекция по умолчанию использует projection.rotate([30, 180]) и расположена так, что Северный полюс находится в центре треугольника — используйте projection.rotate([-30, 0]) для Южного аспекта.
d3.geoCox() · Исходный код, Примеры
d3.geoCoxRaw
Конформная проекция Кокса.
d3.geoComplexLog([planarProjectionRaw[, cutoffLatitude]]) · Исходный код, Пример
d3.geoComplexLogRaw([planarProjectionRaw])
Комплексный логарифмический вид. Эта проекция основана на статьях Иоахима Бёттгера и др.:
- Подробное визуализацию контекста для спутниковых изображений (2008)
- Комплексные логарифмические представления для малых деталей в больших контекстах (2006)
Указанная проекция planarProjectionRaw используется для проектирования на комплексную плоскость, на которой применяется комплексный логарифм. Рекомендуются равноплощадная азимутальная (по умолчанию) или равноазимутальная.
cutoffLatitude — это широта, относящаяся к центру проекции, на которой необходимо выполнить обрезку/вырезание проекции; меньшие значения приводят к более подробному отображению вокруг центра проекции. Значение должно быть < 0, так как комплексный логарифм отображает начало координат в бесконечность.
complexLog.planarProjectionRaw([projectionRaw])
Если projectionRaw указано, устанавливает плоскую исходную проекцию. См. выше. Если projectionRaw не указано, возвращает текущую плоскую исходную проекцию.
complexLog.cutoffLatitude([latitude])
Если latitude указано, устанавливает отсеченную широту. См. выше. Если latitude не указано, возвращает текущую отсеченную широту.
© 2010–2020 Michael Bostock
Licensed under the BSD License.
https://github.com/d3/d3-geo-polygon