Учитывая прямоугольный многоугольник, который находится на rotated (45 degree)
с севера, и горизонтальный прямоугольный холст, который мы должны нарисовать (карту) на нем.
Идея в том, как повернуть / перевести этот многоугольник, чтобы он соответствовал прямоугольным размерам?
У нас есть только полигон Geo координаты, а также ширина и высота холста.
Я пробовал использовать функции проекции D3 для достижения этой цели, но проблема в том, что я не знаю угол поворота для поворота или перемещения многоугольника.
Я пытался использовать d3.geoMercator
проекцию и динамически вычислять масштаб, перевод и вращение на основе данных GeoJSON, но это не удалось, также попытался с geoConicEqualArea
и geoAlbers
и не получилось так хорошо.
Вот простой пример:
Точки A-B-C-D
- границы холста, A'-B'-C'-D'
- географические точки, которые рисуют многоугольник.
Как добиться проекции для перевода / поворота (прагматично) этих точек, чтобы они фактически соответствовали границам холста только с этими входными данными? Учтите также, что позже на том же изображении будет больше визуализации на основе входных данных GeoJSON (маркеры любят рисоваться на изображении), поэтому мне нужно добиться идеального перевода.