С помощью функции полилинии (hdc, * apt, cpt) я пытаюсь нарисовать маршрут в окне FullHD 1920 * 1080 пикселей, но у меня есть проблема, как преобразовать координаты GPS для отображения, которые находятся за пределами отображаемой области в части маршрут. Например, для дисплея установлено значение от 40 ° до 116 ° восточной долготы и от 9 ° северной до 40 ° южной широты. Как мне справиться с этим, если у меня есть некоторые точки маршрута (часть маршрута), например, 25 ° южной широты и 25 ° западной долготы вне зоны отображения? Маршрут представляет собой дрейфующий буй NOAA.
Координаты в моей структуре * apt имеют значения y = LAT * 1000 или y = (-1) * LAT * 1000 + 90000 для значений -LAT и x = LON * 1000, чтобы иметь возможность работать с целочисленными значениями (dword). ). Исходный LAT может иметь значения от -90 ° до + 90 ° и LON от 0 ° до 360 °.
Существует ли какая-либо функция координат преобразования GDI для обновления * подходящих значений точек до значений экрана с помощью маски отображения?
Расчет координат отображения в цикле для точек cpt:
apt [i] .x = (GPS_LAT [x] - 40000) / (116000 - 40000) * 1920;