Как преобразовать / перевести / повернуть полигон GeoJSON, чтобы он соответствовал прямоугольнику? - PullRequest
0 голосов
/ 06 мая 2019

Учитывая прямоугольный многоугольник, который находится на rotated (45 degree) с севера, и горизонтальный прямоугольный холст, который мы должны нарисовать (карту) на нем. Идея в том, как повернуть / перевести этот многоугольник, чтобы он соответствовал прямоугольным размерам? У нас есть только полигон Geo координаты, а также ширина и высота холста.

Я пробовал использовать функции проекции D3 для достижения этой цели, но проблема в том, что я не знаю угол поворота для поворота или перемещения многоугольника.

Я пытался использовать d3.geoMercator проекцию и динамически вычислять масштаб, перевод и вращение на основе данных GeoJSON, но это не удалось, также попытался с geoConicEqualArea и geoAlbers и не получилось так хорошо.

Вот простой пример:

rec-poly-example

Точки A-B-C-D - границы холста, A'-B'-C'-D' - географические точки, которые рисуют многоугольник.

Как добиться проекции для перевода / поворота (прагматично) этих точек, чтобы они фактически соответствовали границам холста только с этими входными данными? Учтите также, что позже на том же изображении будет больше визуализации на основе входных данных GeoJSON (маркеры любят рисоваться на изображении), поэтому мне нужно добиться идеального перевода.

...