Клуб API Карт

ошибка в определении координат?

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

Уважаемые, либо я торможу, либо "определитель координат" 

Есть известные координаты вершины Эльбрус (широта 43,2113, долгота 42,2630) - но по карте яндекс эта точка находится где то в в 25 к юго-западу от вершины!

в "определителе координат" от яндекс - Эльбрус - долгота 42.454254, широта 43.348854

(и кстати, общепринятый формат определения коордитат - сначала пишется широта, а потом долгота. - но это так в общем. Просто те кто работают с картами привыкли к такому формату)

берем другую точку:

Яхтенная марина "Золотой символ"

Координаты 44°30'06" N, 33°35'97"E г.Севастополь, Балаклава, наб. Назукина, 1а.

Опредеюсь по карте яндекс - точка с указанными координатами находится к юго-западу в 30 км в открытом море.

обясните где  ошибка? Или это чтобы враги не могли прицелить свои ракеты? (эту версию высказал один товарищ, но это смешно потому что GPS дает погрешность несколько метров). В итоге, контексте пользоваться вашим "определитем координат" совершенно бессмысленно. 

 

20 комментариев
Александр Железняк
28 января 2016, 07:42
Спасибо за ссылку, но тут ответ про формат написания - а это не главное, можно приспособиться (хоть традиционные навигационные системы морские и авиа пишут именно широта/долгота, а так и кАрова писать можно - все равно понятно что не бык :) )
а тут важный вопрос в том - почему я ввожу известные координаты места и карта врет почти на 30 км???? Кто нибудь объясните! 
Александр Железняк
28 января 2016, 07:42
Спасибо еще раз - действительно если определять через "яндекс карты" получается точно.  но я определялся через "определитель координат" http://api.yandex.ru/maps/tools/getlonglat/ и он как раз врет и серьезно. Попробуйте сами - может я снова что то не так делаю или не туда смотрю.
Куда вы вводите координаты и в каком виде?
Александр Железняк
28 января 2016, 07:42
http://api.yandex.ru/maps/tools/getlonglat/ - если зайти на эту ссылку, то инструкция по пользованию гласит - "...перетащите метку в то место, координаты которого вы хотите узнать. В правом верхнем углу карты будут показаны: координаты метки в формате "долгота, широта", текущий масштаб карты и координаты центра карты."
так что я ничего не ввожу. У меня есть место которое я могу найти на карте и мне нужно узнать его координаты. И я просто навожу метку на  нужное место и получаю "кривой" результат. 
или что то не верно понял?
Судя по Википедии, координаты вершины 42°26′13″ в. д. 43°21′11″ с. ш.
Определитель координат возвращает 42.454254,43.348854, что равно 42°27′15.31″ в. д. 43°20′55.87″ с. ш.
Учитывая погрешность при установке метки на глаз, результат весьма точный.
Александр Железняк
28 января 2016, 07:42

"42.454254, 43.348854, что равно 42°27′15.31″ в. д. 43°20′55.87″ с. ш."


да, координаты верные указываете, но тогда объясните что значит "42.454254, = 42°27′15.31в. д." Почему равно? если 42(это градусы) то следующие две цифры по всем традиционным форматам должны быть минуты и еще следущие секунды. но тут же идет 42.454254  - каким образом человек должен понять, что это = 42°27′15.31″ в. д???


общепринятый формат определения коордитат - сначала пишется широта, а потом долгота
следующие две цифры по всем традиционным форматам должны быть минуты и еще следущие секунды

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

42.454254 - каким образом человек должен понять, что это = 42°27′15.31″ в. д???

Мне неловко это объяснять, но таким же образом, как обычный человек понимает, что 2,5 часа = 2 часа 30 минут (а не 2 часа 50 минут).

Александр Железняк
28 января 2016, 07:42
возможно я и заблуждаюсь, возможно и приписываю, но я кроме этого еще часто работаю с картами (не в интернете ), скажем когда прокаладываю маршрут для судна на бумажной карте или на GPS. Я не профессиональный капитан, а любитель (хоть и прошел уже несколько тысяч миль) и с математикой в школе было плохо. И возможно профессионалов-картографов или навигаторов учат различным схемам записи данных.    И могу с уверенностью сказать - что общепринятый формат записи координат именно такой:  хх°хх′хх′′ с.ш./хх°хх′хх′′ в.д. мысла придумывать велосипед и писать 42.454254 вместо всем понятных цифр не вижу.
а ваш предыдущий пост несколько не корректен - если вам неловко - тогда и не пишите. А если "ловко" то можно не выпендриваться и написать что к чему и человечество не только в моем лице будет вам благодарно. 
И могу с уверенностью сказать - что общепринятый формат записи координат именно такой: хх°хх′хх′′ с.ш./хх°хх′хх′′ в.д. мысла придумывать велосипед и писать 42.454254 вместо всем понятных цифр не вижу.

И снова призываю вас не разбрасываться словами общепринятый и традиционный, т. к. остальное человечество считает, что all of the following are valid and acceptable ways to write geographic coordinates:

40:26:46N,79:56:55W
40:26:46.302N 79:56:55.903W
40°26'47"N 79°58'36"W
40d 26' 47" N 79d 58' 36" W
40.446195N 79.948862W
40.446195, -79.948862
40° 26.7717, -79° 56.93172
 
И могу с уверенностью сказать - что общепринятый формат записи координат именно такой:  хх°хх′хх′′ с.ш./хх°хх′хх′′ в.д. мысла придумывать велосипед и писать 42.454254 вместо всем понятных цифр не вижу.
 
Смотрите шире. С точки зрения програмиста, чтобы использовать хх°хх′хх′′ нужно изобрести велосипед. А цифры с плавающей запятой просты и приятны в работе. :)

Гармин кстати тоже изобрёл велосипед в их приборах отображается:
хх° хх.xxx′  :)

PS.humanDistance(distance, roughly)


Мы используем следующую нехитрую функцию:

 function wgsToGeo(coord){
        var grad, min, sec, total;

        total = Math.abs((coord * 3600).toFixed(2));
        grad = Math.floor(total / 3600);
        min = Math.floor(total % 3600 / 60);
        sec = Number((total % 60).toFixed(2));

        return  grad + '\u00b0' + min + '\u2032' + sec + '\u2033';
    };

    /** Очеловечивает координаты */
    function humanCoords(geoPoint) {
        return {
            lng: wgsToGeo(geoPoint.getLng()) + ' ' + (geoPoint.getLng() > 0 ? 'в. д.' : 'з. д.'),
            lat: wgsToGeo(geoPoint.getLat()) + ' ' + (geoPoint.getLat() > 0 ? 'с. ш.' : 'ю. ш.')
        };
    };

Возможно, её следует включить в API.

Интерсный момент, никогда не задумывался, как действительно пишут координаты люди, рабатающие в реале с обычными картами. Так как все же правильно в реале Ш\Д или Д\Ш? У Google вроде как использует Ш\Д, не есть ли представление формата в Я.К просто желанием быть не похожим на конкурента? А то в свое время мы ж\д колею на 20 см шире сделали и теперь мучаемся :-)

Гугл внутри использует ДШ, а в интрерфейсе ШД.

Мы стараемся быть последовательными до конца.

Вообще в мире равноправно используют оба варианта.

Спасибо за ответ. Странно конечно за бардак, карты существуют несколько дольше ГИСов.
Александр Новиков
28 января 2016, 07:42
Известный факт что карты неточно привязаны к местности. В таком виде их Яндексу дают поставщики. Так что в обще вопрос надо задавать поставщикам карт.

Оределитель же координат является обычным инструментом с помощью которого можно определить координаты точки на карте что бы потом нормально вставить эту самую точку на карту у себя на сайте.
Александр Железняк
28 января 2016, 07:42
Известный факт?)) хм.. в узком кругу)) ну может яндекс задаст вопрос сам а не пользователи? думаю им проще сделать это, если хотят быть качественным сервисом.
я понимаю для для чего служит "определитель координат" мне только непонятно, нафиг нужет такой определитель, который дает погрешность не в метрах, а в десятках километров.. И при этом выдает данные не только по градусам и минутам, но и секундам. То есть претендует на высокую точность. Зачем - округлили бы до градуса и претензий не было.  
Есть известные координаты вершины Эльбрус (широта 43,2113, долгота 42,2630)

Вы уверены? Википедия считает иначе: 43°21′11″ с. ш. 42°26′13″ в. д., что равно широте 43,353056 и долготе 42.436944.

Александр Новиков
28 января 2016, 07:42
Хочу огорчить, но не вы такой один умный и не только у вас есть GPS приемник. Много где карты не совпадают - люди жалуются в Яндекс, Яндекс жалуется поставщикам... а дальше неизвестность ;)