Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Определение расстояния на карте (http://www.flasher.ru/forum/showthread.php?t=117034)

dantist86 20.10.2008 20:34

Division, твои формулы предполагают, что Земной шар - правильный шар. Это несколько не верно - Земля эллипсоид. На больших расстояниях будут ошибки. Например от Лондона до Сиднея существенные. Хотя не знаю, какая точность вам нужна.

Division 20.10.2008 20:39

Да, это я знаю. Я буду только Евразию мерять, так что думаю мне хватит. А вообще, есть где почитать как достичь более высокой точности?

chingachgoog 20.10.2008 20:57

Цитата:

Сообщение от dantist86 (Сообщение 771673)
Division, твои формулы предполагают, что Земной шар - правильный шар. Это несколько не верно - Земля эллипсоид. На больших расстояниях будут ошибки. Например от Лондона до Сиднея существенные. Хотя не знаю, какая точность вам нужна.

Величину ошибки я написал (см. ссылку выше), не так уж и много.
Точность у расчета по сферической теореме косинусов будет как раз меньшая, при небольших расстояниях, но есть формула хавер-синусов для этого случая :)

dantist86 20.10.2008 21:24

Division, нашел в своих архивах ссылку http://www.posc.org/Epicentre.2_2/Da...e/eu_cs34.html
chingachgoog, я к сожалению отошел от картографической тематики и что-то не тянет возвращаться. Сорри.:)

Division 21.10.2008 11:06

dantist86, спасибо, почитаю. Ещё вопрос. Я тут вдруг понял, что опять провтыкал. На этот раз с приведением экранных координат в географические. Значит, использую меркаторскую проекцию. С долготой всё понятно, на карте нарисованы меридианы мы можем посмотреть между какими двумя значениями находится точка и интерполицией получить значение долготы. Но вот с широтой так уже не пройдёт. Может подскажешь, как мне получить долготу из координаты Y курсора мыши, если я знаю координату Y двух ближайших широт? Например, курсор находится между 45 СШ и 60 СШ (координаты Y курсора, 45 СШ и 60 СШ мы знаем).

Надеюсь я нормально сформулировал. Буду и сам пытатся разобраться, но любой помощи благодарен.

Вообщем, кажется таки сделал. Спасибо википедии. Пока что только в excel, но работает должным образом. Может кому понадобится, так что напишу как сделал. Значит, чтобы найти широту по экранной координате Y на меркаторской проекции надо воспользоваться такой формулой:
Код:

φ = 2*arctg(exp(Y/C))-Pi/2
Где φ - искомая широта, Y - координата Y курсора, C - некая константа.
C я нашёл таким образом:
Код:

C = X/долгота
Допустим, будем мерять от 0 до 15 градусов восточной долготы.
X - это расстояние в пикселях от 0 до 15 градусов ВД.
Долгота в нашем случае 15. Нужно перевести в радианы перед подстановкой.


Часовой пояс GMT +4, время: 14:59.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.