Ответ 1
Не зная, что вы пытались использовать с помощью projection.rotate()
Я все еще думаю, что этот метод даст желаемый результат. Например, вращение по часовой стрелке на 20 градусов вокруг LAT = 49,7N, LON = 27,4E, как указано в вашем примере, может быть выполнено с помощью:
projection.rotate([-49.7,-27.4,-20])
Я установил Plunk, демонстрируя результат.
Update
Если вы не обязаны использовать проекцию Albers, могут быть другие параметры, дающие результаты, которые лучше соответствуют вашим потребностям
что люди знакомы с обычным атласом.
Я просмотрел его в трех атласах, где изображен Аравийский полуостров с использованием равноугольной проекции, которая выглядит как ваш желаемый результат:
var projection = d3.geo.equirectangular()
.rotate([-49.7,-27.4])
Вы просто сосредотачиваетесь на LAT = 49.7N, LON = 27.4E, применяя .rotate([-49.7,-27.4])
без необходимости дальнейшего свертывания проекции, т.е. у вас не будет третьего элемента в массиве, поставляемого в rotate()
. См. Мой обновленный Plunk. Для меня это выглядит так, как я ожидаю, когда он увидит его в атласе.