Я планирую построить онлайн-карту для маркеров (пинов) игры, и мне не удается установить правильную широту моих маркеров.
Исходная карта представляет собой квадрат размером 2048*2048 пикселей.
Затем я получил маркеры (много тысяч)
Координаты карты задаются в виде x, y от 0 до 100. 0, 0 — это левый верхний угол, а 100, 100 — правый нижний угол карты. x=50, y=50 — широта = 0°, долгота = 0° (центр изображения).
Чтобы преобразовать мои обозначения в долготу, я использую эту функцию JS, она работает хорошо:
function longitude(x)
{
var lng = 0
if (x < 50) // Negative Longitude (West)
{
lng = (x - 50) / 50 * 180;
}
else // Positive Longitude (East)
{
lng = (50 - x) / 50 * 180;
}
return lng
}
Но для широты это не работает, потому что эти двигатели используют проекцию Меркатора, а я нет.
Если у кого-то есть правильная формула, был бы очень признателен :(