Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Получение позиции Y из Latitude на сферической проецируемой карте

Автор вопроса: Adam MeyerОтветов: 2

В Javascript.

У меня есть карта мира 1024 x 1024 пикселей - это сферическая проекция Меркатора.

Я хочу преобразовать long / lat в x, y для этой карты. У меня есть несколько координат, которые мне нужно наложить поверх них.

Вычислить долготу было очень легко, и я делаю это так:

pos.x = ((long + 180)/ 360) * 1024;

Мне просто нужно то же самое для широты -> у

Я огляделся и увидел много ссылок на openlayers, но не заметил такого преобразования.

javascriptmapslatitude-longitude

Ответы

Ответ 1 · рейтинг 4 · Malvolio

Чтобы свести это к нулю:

var mercator = function(lat, lng) {
  return [lng, Math.log( (Math.sin(lat) + 1.0) / Math.cos(lat)) ] ;
};

Разумеется, широта и долгота должны быть выражены в радианах.

Ответ 2 · рейтинг -1 · Howard

Вы можете найти соответствующие формулы в этой статье в Википедии: Проекция Меркатора.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы