Я использую ниже наблюдаемый в качестве ссылки для создания глобуса на холсте.
https://observablehq.com/d/7a912fba32fbe641
Мой экран выглядит так:
Здесь я сталкиваюсь с двумя проблемами
- Как получить ограничительную рамку широта / долгота для земного шара. Я имею в виду, когда мы увеличиваем масштаб, чем узнать, каковы координаты ограничительной рамки широты и ширины.
- Я могу вращать земной шар, чтобы убедиться, что данный объект Geo Json находится в центре, но как увеличить / уменьшить масштаб, чтобы убедиться, что данный Geo Json отчетливо виден с некоторыми отступами.
Для поворота я использую GeoCentroid. Это вращает земной шар, но как масштабировать также. Я попробовал fitExtent, но он не смог заставить его работать.
content.getInBounds = function (projection, lineStringPoints) {
var d = {
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": lineStringPoints
}
};
var p = d3.geoCentroid(d);
projection.rotate([-p[0], -p[1]]);
};
Также, как получить заданную границу земного шара в заданном увеличенном масштабе. Есть функция для получения границ в пути d3.geo, но она ожидает объект geo Json.