Получение позиции Y от Локатора на сферической проецируемой карте - PullRequest
1 голос
/ 14 июня 2011

В Javascript.

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

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

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

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

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

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

Ответы [ 2 ]

4 голосов
/ 14 июня 2011

Чтобы свести это:

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

Широта и длина должны быть выражены в радианах конечно.

0 голосов
/ 14 июня 2011

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

...