Расчет WGS-84 координат для переваривания яндекс картами

Обсуждение всех вопросов связанных с нашим сервером мониторинга. Сообщения об ошибках, путях их исправления, пожелания об улучшении и т.д..

Расчет WGS-84 координат для переваривания яндекс картами

Сообщение Chris » 26 мар 2011, 22:35

Приветствую! В данный момент есть проблема пересчета координат в Яндекс картах и Гугл мапсах. Блок отдает данные в WGS-84, но картографические сервера не воспринимают их, тем самым тому же яндексу приходжится скармливать их в формате Hour + minsec / 60. Но как расчитать это програмно?

Вот нашел довет на одном сайте:

Код: Выделить всё
55 74087 - это будет 55 градусов. Далее нужно 0,74087*60=44,4522 минут - целая часть это минуты.
Затем для получения секунд нужно 0,4522*60 секунд=27,132 секунд.
В результате получили 55 градусов 44 минуты 27,132 секунды



Считаем:

//+56° 57' 47.62", +40° 59' 48.14"
function WGS84_2_geo($Coord){
list($grad, $min) = split(" ", $Coord, 2);
//$min = $min/60;
$min = str_replace(".","",$min);
$min = "0.".$min;
$min = $min*60;
$gmin = round($min,0);
$sec = $min-$gmin;
if ($sec < 0){$sec = $sec*-1;}
print "$sec = $min-$gmin; - ";
$sec = $sec*60;
$sec = str_replace(".","",$sec);
return $grad.".".$gmin.$sec;
}

print WGS84_2_geo("N55 76.9721");
print ", ";
print WGS84_2_geo("E37 59.5185");
print "\n";



Но чего то яндекс такие координаты не жрётс....
Так как перевести WGS в нормальный DEC?
Chris
 
Сообщения: 28
Зарегистрирован: 16 фев 2011, 01:24

Re: Расчет WGS-84 координат для переваривания яндекс картами

Сообщение Chris » 26 мар 2011, 23:58

Проблема проще... когда яндексу отдается координата N56.577071 E41.9676, то вот как раз эта E41. ->> 9676 <<-- ему и не нравитя.. вопрос - чем же забивать WDG, чтобы яндекс карты отсчитывали нормально
Chris
 
Сообщения: 28
Зарегистрирован: 16 фев 2011, 01:24

Re: Расчет WGS-84 координат для переваривания яндекс картами

Сообщение Chris » 27 мар 2011, 00:37

Проблема решена!!!! Обратите внимание на то, что
1. Яндекс карты гавно )))
2. Яндекс карты не умеют нормально работать с WGS-1984 и их придется пересчитывать в СК-42

Как это делается

Очень просто!

Например у нас есть координата 42.9676 - такую яндекс покажет не там.. Перерасчитываем
42 оставляем, а вот с 5421 делаем следующее:

9676 / 60 = 161.266667

Убираем точку - 161266667, первые цифр и есть координата - 161266.

Координата SK-42 получается равна 42.161266

Вот такое яндекс хавает без проблем.

ЗЫ Скоро будет свой гео сервер.. ))
Chris
 
Сообщения: 28
Зарегистрирован: 16 фев 2011, 01:24

Re: Расчет WGS-84 координат для переваривания яндекс картами

Сообщение romka » 27 мар 2011, 20:40

вроде про яндекс уже не раз проскакивало что Г

навреное это надо в FAQ хотя бы

+ там же про сим карты разных операторов
romka
 
Сообщения: 36
Зарегистрирован: 04 мар 2011, 09:09

Re: Расчет WGS-84 координат для переваривания яндекс картами

Сообщение АвтоФон /root/ » 27 мар 2011, 23:18

хм, помоему вы перемудриваете с конвертацией координат :) ... можно проще это делать, мы вот так делаем:

На вашем примере:

41.9676
9676 - это доли градусов (минутами/секундами просто быть не может, т.к. минут максимум 60 и было бы максимум 41.5959 (если минуты+секунды) или 41.5999 (если минуты + доли минут). Как раз второй вариант формата координат - как раз минуты+доли минут

значит перевести доли градуса в минуты (и их доли) проще простого: умножаем на 60 и делим на 100:
(9676 * 60) / 100 = 5806.
результат: 41.9676 -> 41.5806

Но разрядность какая-то маленькая,
возьмем лучше из повыше: 56.577071
а еще лучше, придумаем: 56.677071 (чтоб было 677071 - сразу видно, что это не минуты)
рассчет такой же:
(677071 * 60) / 100 = 406243
результат: 56.677071 -> 56.406243
______
Удачи!
АвтоФон /root/
Администратор
 
Сообщения: 1927
Зарегистрирован: 05 фев 2010, 19:18
Откуда: Москва

Re: Расчет WGS-84 координат для переваривания яндекс картами

Сообщение Chris » 28 мар 2011, 20:11

Да, работает! Еще варианты различные, мало ли кому из dd mm.mmmm и dd mm ss надо считать.

Формула для пересчета из dd mm ss в dd.ddddd:

DDD = DD+((MM)/60)+(SS)/3600

Формула для пересчета из dd mm.mmmm в dd.ddddd:

DDD = DD+((MM.MMMM)/60)

Формула для пересчета из dd.ddddd в dd mm ss:

DD = TRUNC(DD)

MM = TRUNC((DDD-DD)*60)

SS = ((DDD-DD)*60-MM)*60

где DDD - координаты в формате DD.DDDD, DD - градусы, MM (MM.MMMM) - минуты, SS - секунды
Chris
 
Сообщения: 28
Зарегистрирован: 16 фев 2011, 01:24

Re: Расчет WGS-84 координат для переваривания яндекс картами

Сообщение Chris » 28 мар 2011, 20:48

Фуф... пересчитываю по вашей формуле. Имеем:

N56 464261 E40 543407 (Лежнево Ивановской области)
после расчета N56.278557 E40.326043 и яндекс говорит, что это Владимирская область, Суздальский район... Все, пошел пить чай.. чего то не сходится у меня )))
Chris
 
Сообщения: 28
Зарегистрирован: 16 фев 2011, 01:24

Re: Расчет WGS-84 координат для переваривания яндекс картами

Сообщение romka » 28 мар 2011, 20:56

ты скажи куда попасть то надо?

Суздаль вроде показывает в Гугле
romka
 
Сообщения: 36
Зарегистрирован: 04 мар 2011, 09:09

Re: Расчет WGS-84 координат для переваривания яндекс картами

Сообщение Chris » 28 мар 2011, 21:31

уф, попил чаю отпустило (говорила мама - занимайся экономикой, брось ты этот компъютер). Вообщем все расчитывается по формуле
DDD = DD+((MM.MMMM)/60) сейчас расскажу про результаты, машину послал на спорные места ))) Ждем 20 минут, пока долетит )))
Chris
 
Сообщения: 28
Зарегистрирован: 16 фев 2011, 01:24

Re: Расчет WGS-84 координат для переваривания яндекс картами

Сообщение Chris » 28 мар 2011, 21:56

Мдя.. и нифига... Сейчас весь трэк скину и опишу где проблема начинается с расчетом... Как расчитать, ну просто не понимаю
Chris
 
Сообщения: 28
Зарегистрирован: 16 фев 2011, 01:24

След.

Вернуться в Сервер контроля и мониторинга АвтоФон КСА и мобильные приложения АвтоФон Коммандер

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

cron