Как я могу получить текущую привязку экрана в лат / лнг - PullRequest
0 голосов
/ 07 марта 2020

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

https://observablehq.com/d/7a912fba32fbe641

Мой экран выглядит так: enter image description here

Здесь я сталкиваюсь с двумя проблемами

  1. Как получить ограничительную рамку широта / долгота для земного шара. Я имею в виду, когда мы увеличиваем масштаб, чем узнать, каковы координаты ограничительной рамки широты и ширины.
  2. Я могу вращать земной шар, чтобы убедиться, что данный объект 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.

...