Клуб API Карт

Преобразование координат Google в Yandex

leksey
21 октября 2009, 12:53
Гугль (а также Космоснимки) понимает нотацию вида N43 51.337’ E39 29.277’ или +43° 50' 32.13", +39° 26' 45.92" (именно в таком виде они приходят с GPS-устройств, а также сам Google Maps отдает координаты в виде ), Яндекс - не понимает. Есть ли способы получить координаты в представлении понятном Яндекс.Карты? Желательно автоматически, но в случае отсутствия готового сервиса, подойдет и вариант сделать это вручную. Заранее спасибо. P.S. Просто поменять местами широту и долготу недостаточно - разное количество символов в координатах. P.P.S. Никто ещё не сделал решение, где в одном окне представлена информация с сервисов Google Maps и Яндекс.Карты? Или это не позволяет сделать различие в использованных проекциях, масштабах?
20 комментариев
Подписаться на комментарии к посту
В API Яндекс.Карт используются десятичные градусы.
Перевести в них можно по следующей формуле:
Decimal Degrees = Degrees + Minutes/60 + Seconds/3600
Подробнее о прееводе из формата ГМС в десятичные градусы можно почитать на сайте gis-lab.info.
Спасибо. Т.е. в моем примере надо сделать так: Из N43 51.337’ получим 43.943611 (43 + 51/60 + 337/3600) и 39.560278 (39 +29/60 + 277/3600) Получившееся оформляем в виде 39.560278,43.943611 (полученные значения меняем местами еще) и вводим в строку поиска на Яндекс.Картах
Да. Если возникнут еще вопросы - пишите.
rodlex,
я вам выслал пример с вроде бы ошибкой в расчете расстояния (через форму "сообщить об ошибке")
вы ему номер тикета лучше скажите (многозначный номер в письме-ответе)
Может дадите ссылку в клуб?
Номер тикета я не получил :(
Вот, например -
расстояние по большой дуге на Я.картах
и на Космоснимках -
http://kosmosnimki.ru/permalink.html?Nf91b3a46
Получается 6300 и 7800 соответственно
это не ошибка

мы считаем расстояние вдоль отображенной прямой, т.е. что показываем то и считаем
а на космоснимках, показывается прямая, а расстояние считается кратчайшее, в данном случае кратчаешее это примерно через полюс
сравните с
http://kosmosnimki.ru/permalink.html?N15653be1

если хотите подробнее поищите в интернетах "проекция меркатора"
ну да, это вопрос, что считать правильным способом вычисления. наверное, еще правильнее отрисовывать в случае кратчайшего расстояния правильную кривую, по геодезической.
А откуда разница в координатах?
если посчитать правильно, то получаются одни и теже координаты
см. комментарий twirl-team
51.337 угловой минуты != 51 угловая минута и 337 угловых секунд
51.337 угловой минуты = 51.337/60 градусов = 0,8556 градуса
т.е. уже 0,8556 градуса надо делить на 3600?
Если вы про использование координат в API - то во всех API десятичные градусы. Причем в порядке x,y - т.е. долгота (по x), широта (по у)
А сайты понимают немного по-разному - на Космоснимках можно изменять формат отображения координат.
Можно совместить данные, хотя проекции действительно разные, но это будет нелицензионно: и те, и другие провайдеры запрещают использование данных вне своего интерфейса
переход на космочнимки http://old.kosmosnimki.ru , тычок в левом-нижнем углу с значок разворота был бы неплохим воркараундом для конвертации координат, но из N43 51.337’ E39 29.277’ получилось только 43°51'20.21" N, 39°29'16.61" E 4395778, 5413511 43.85562 N, 39.48795 E 43°51.336' N, 39°29.276' E а вручную по формуле 39.560278,43.943611 то ли я криво посчитал, то ли еще чего. тем более, точки не совпадают
А почему вы старым сайтом пользуетесь? просто интересно
43.85561 N, 39.48795 E - я думаю, считается по такой же формуле
если есть время, посмотрите сами - на яндексе это точка под жёлтым зданием (примерно) т.е. у самого поселка Зубова Щель а на космоснимках - сильно дальше по ущелью по его ходу. и по смыслу точка именно там и должна быть потому что у меня FreeBSD, а нормального флеша под эту ОС я все никак не осилю в силу своих малых знаний
да и не люблю я флеш - был бы, все равно работал без него при возможности. он всегда грузит процессор и пытается уронить браузер. собственно, как и в винде когда я ей пользовался
N43 51.337’ = 43 + 51.337/60 = 43.8556167
E39 29.277’ = 39 + 29.277/60 = 39.4871167

Все совпадает.
попробуйте открыть в яндекс-картах и в гугле/космоснимках - маркер спозиционируется на разных местах
на всякий случай речь не об АПИ - а просто в интерфейсе. т.е. я хочу спозиционировать карту в браузере на известных мне координатах. но поскольку тут работает тот же АПИ, то все так же как и при работе из скриптов