Методика перевода гео-координат в относительные координаты полотна (draw) для рисования схемы?

Здравствуйте.

Возникла необходимость составить схему, без картографической подложки (белый фон). Схема составляется на полотне 300х300 мм или пикселей, на выбор.
Есть объект - дорога - которая имеет две координаты, начала и конца участка. Точка А (45.006977, 39.117587) и точка Б (45.008380, 39.122297).

Сам участок должен располагаться в центре полотна. При этом, объект не может превышать 2/3 ширины или высоты полотна, и располагаться в центре полотна рисования.
Рисую схему в PIL (Python), но это не принципиально, т.к. принципы рисования стандартны - верхний левый угол имеет координаты (0,0), правый нижний угол имеет координаты (300,300).

Получается, нужно перевести геокоординаты в относительные. Вот тут пока с мыслями туго. Буду рад, если кто-то подскажет направление.
  • Вопрос задан
  • 882 просмотра
Решения вопроса 1
Moskus
@Moskus
Судя по числам, у вас географические координаты. Если вы не хотите, чтобы изображение ваших объектов было растянуто по горизонтали пропорционально тому, как далеко от экватора находится ваш объект, вам нужно сначала перепроецировать географические координаты на эллипсоиде или сфере (я не знаю, где вы их взяли, потому тут возможны варианты) в прямоугольные, а потом просто нормировать получившиеся цифры, чтобы они влезли в ваш экран и повернуть оси.
Выбор прямоугольных систем координат широк, но вам, вероятно, проще всего будет работать с проекцией Меркатора. Все что нужно для перепроецирования содержит библиотека PROJ4 (см. вот тут).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы