Клуб API Карт

Конвертор координат

Пост в архиве.

Добрый день.

Подскажите, в первой версии апи был конвертор координат. Из второй его выпилили? Никак не могу найти.

И второй вопрос - нет ли у апи некоего валидатора координат, который сказал бы, координаты на входе или хрень какая?

4 комментария
Алексей Yarrr!
28 января 2016, 02:55

Первый — уехал в проекцию. См. методы fromGlobalPixels и to в документации проекции.

Второе зависит от карты, на которую натравлен АПИ. По умолчанию это геокарта земли от Яндекса, но теоретически её можно подменить и смотреть надо опять же в проекцию, в параметр bounds, и в слои, которые рисуются АПИ. Учитывайте, что если координаты зациклены, как в случае с геокартой земли, то вектору (широта, долгота) будут соответствовать множество векторов (широтаВПикселях, долготаВПикселях). Фактически, fromGlobalPixels([nk+x, ml+y]) ­= [lat, long]; где m,n целые, k, l - размер глобальных карты в пикселях. См. параметры объекта Map, там же лежит проекция. Если я правильно понимаю ваше беспокойство, то ваш вопрос слегка некорректен. Координаты не могут быть "хренью", т.к. это градусы, которые попадают на вход sin/cos, которые сами по себе тоже зациклены и ошибки не будет. Можете почитать о меркаторе в вики

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

54°12′0″ в 54.217°6′0″E в 17.1Ну и наоборот соответственно

на maps.yandex.ru долгое время работал

 этот парсер, было бы наверное здорово переписать его c луа на javascript

Владислав Турман
28 января 2016, 02:55

 я пользую обраитный вариант. можете переписать.

      function ConvertCoord(dd) {

            var d = parseInt(dd);

            var nFract = Math.abs(dd - d);

            var m = parseInt(nFract * 60);

            var s = Math.round(nFract * 3600 - m * 60);

            var dms = (d + '° ' + m + '\' ' + s + '\"');

            return dms;

        };