(Широта, Долгота) -> координаты на экране
От: Аноним  
Дата: 14.12.05 11:25
Оценка:
Как конвертровать (Широту, Долготу) -> в координаты на экране?

P.S.:
широта и долгота из файла .mp
(польский формат карт, вобщем проекция вроде обычная какая-то)
Re: (Широта, Долгота) -> координаты на экране
От: Mc_Leod  
Дата: 14.12.05 11:55
Оценка:
Здравствуйте, <Аноним>, Вы писали:

Возможно вам подойдёт вот это:
http://www.remotesensing.org/proj

А>Как конвертровать (Широту, Долготу) -> в координаты на экране?


А>P.S.:

А>широта и долгота из файла .mp
А>(польский формат карт, вобщем проекция вроде обычная какая-то)
... << RSDN@Home 1.1.4 stable rev. 510>>
Re[2]: (Широта, Долгота) -> координаты на экране
От: Аноним  
Дата: 14.12.05 12:07
Оценка:
Здравствуйте, Mc_Leod, Вы писали:

M_L>Здравствуйте, <Аноним>, Вы писали:


M_L>Возможно вам подойдёт вот это:

M_L>http://www.remotesensing.org/proj

Попроще чего-нибудь нет?

А>>Как конвертровать (Широту, Долготу) -> в координаты на экране?


А>>P.S.:

А>>широта и долгота из файла .mp
А>>(польский формат карт, вобщем проекция вроде обычная какая-то)
Re: (Широта, Долгота) -> координаты на экране
От: wildwind Россия  
Дата: 14.12.05 12:26
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>широта и долгота из файла .mp

А>(польский формат карт, вобщем проекция вроде обычная какая-то)
Формата .mp не знаю, но широта и долгота — это не проекция, это географические координаты. А проекция должна быть у тебя на экране. Соответственно надо что-нибудь почитать, выбрать подходящую проекцию и раелизовать ее формулы.
Re[2]: (Широта, Долгота) -> координаты на экране
От: Аноним  
Дата: 14.12.05 12:30
Оценка:
Здравствуйте, wildwind, Вы писали:

W>Здравствуйте, Аноним, Вы писали:


А>>широта и долгота из файла .mp

А>>(польский формат карт, вобщем проекция вроде обычная какая-то)
W>Формата .mp не знаю, но широта и долгота — это не проекция, это географические координаты.
Не может быть...

про польский формат — это к тому, что он использует наиболее используемую проекцию WGS-84

А>>А проекция должна быть у тебя на экране. Соответственно надо что-нибудь почитать, выбрать подходящую проекцию и А>>раелизовать ее формулы.
Re[3]: (Широта, Долгота) -> координаты на экране
От: wildwind Россия  
Дата: 14.12.05 13:06
Оценка:
Здравствуйте, Аноним, Вы писали:

А>про польский формат — это к тому, что он использует наиболее используемую проекцию WGS-84

Ну значт в файле не широта.

Кстати, это не ты хочешь сломать map.exe
Автор:
Дата: 13.12.05
?
Re[3]: (Широта, Долгота) -> координаты на экране
От: Анатолий Широков СССР  
Дата: 15.12.05 08:02
Оценка:
А>про польский формат — это к тому, что он использует наиболее используемую проекцию WGS-84

WGS-84 это не проекция, а набор параметров (датум), описывающих эллипсоид. А проекция это все лишь

u = u(fi, la)
v = v(fi, la)

Re[4]: (Широта, Долгота) -> координаты на экране
От: Анатолий Широков СССР  
Дата: 15.12.05 08:04
Оценка:
Немного о датумах http://www.dataplus.ru/Support/ProjUtility/Datum.htm
Re[4]: (Широта, Долгота) -> координаты на экране
От: Аноним  
Дата: 15.12.05 09:01
Оценка:
Здравствуйте, Анатолий Широков, Вы писали:

А>>про польский формат — это к тому, что он использует наиболее используемую проекцию WGS-84


АШ>WGS-84 это не проекция, а набор параметров (датум), описывающих эллипсоид.

С этим я разобрался

АШ>А проекция это все лишь


АШ>

АШ>u = u(fi, la)
АШ>v = v(fi, la)


А вот это-то, как раз, то что мне нужно, только где
взять сами эти формулы преобразования?

Кстати, обычно ведь ГИС используют цилиндрическую проекцию? Если нет, то какую?
И как в эту самую проекцию преобразовывать географические координаты?
Re[5]: (Широта, Долгота) -> координаты на экране
От: RealBobEx  
Дата: 15.12.05 16:11
Оценка:
Здравствуйте, Аноним, Вы писали:

А>А вот это-то, как раз, то что мне нужно, только где

А>взять сами эти формулы преобразования?

Ну тут Вам годик прийдется книжки почитать.
Весьма непростая математика — проекции.

А>Кстати, обычно ведь ГИС используют цилиндрическую проекцию? Если нет, то какую?

А>И как в эту самую проекцию преобразовывать географические координаты?

Любая ГИС имеет коллекцию из разных проекций.
Выбираешь ту которая тебе нужна.
А вот какая нужна — для этого толстые книжки и существуют.
Если нужно — дам пару реф. на бумажные издания.

А отобразить широту/долготу на экране — лучше всего использовать
SetWorldTransform()

Но она никакого отношения не имеет к проекциям и широте/долготе. Это все — ручками писать.
Просто заменяет страничную систему координат.
Вобщем самому писать (а я уже такое написал) — не советую.
Разве что для общего развития .
Re[6]: (Широта, Долгота) -> координаты на экране
От: Аноним  
Дата: 17.12.05 13:41
Оценка:
Здравствуйте, RealBobEx, Вы писали:

RBE>Здравствуйте, Аноним, Вы писали:


А>>А вот это-то, как раз, то что мне нужно, только где

А>>взять сами эти формулы преобразования?

RBE>Ну тут Вам годик прийдется книжки почитать.

RBE>Весьма непростая математика — проекции.

А>>Кстати, обычно ведь ГИС используют цилиндрическую проекцию? Если нет, то какую?

А>>И как в эту самую проекцию преобразовывать географические координаты?

RBE>Любая ГИС имеет коллекцию из разных проекций.

RBE>Выбираешь ту которая тебе нужна.
RBE>А вот какая нужна — для этого толстые книжки и существуют.
RBE>Если нужно — дам пару реф. на бумажные издания.

RBE>А отобразить широту/долготу на экране — лучше всего использовать

RBE>
RBE>SetWorldTransform()
RBE>

RBE>Но она никакого отношения не имеет к проекциям и широте/долготе. Это все — ручками писать.
RBE>Просто заменяет страничную систему координат.
RBE>Вобщем самому писать (а я уже такое написал) — не советую.
RBE>Разве что для общего развития .

Короче, я создал такую функцию:

double ctl(double angle){return 2.0f*PI*EarchRaduis*angle/360.0f;}

Point GeoToScreen(float lon, float lat) 
{ 

    Point p;   
        float k1=k2=1;
    p.X = ctl(lon)*k1;
    p.Y = ctl(lat)*k2;
    return p; 
}


Нормально преобразует географические координаты в экранные
Форму геоида просто немного еще подправить нужно (ведь земля как выяснилось не круглая!)
Re[7]: (Широта, Долгота) -> координаты на экране
От: RealBobEx  
Дата: 19.12.05 14:21
Оценка: +1
Здравствуйте, Аноним, Вы писали:
А>Короче, я создал такую функцию:

А>
А>double ctl(double angle){return 2.0f*PI*EarchRaduis*angle/360.0f;}

А>Point GeoToScreen(float lon, float lat) 
А>{ 

А>    Point p;   
А>        float k1=k2=1;
А>    p.X = ctl(lon)*k1;
А>    p.Y = ctl(lat)*k2;
А>    return p; 
А>}
А>


А>Нормально преобразует географические координаты в экранные

А>Форму геоида просто немного еще подправить нужно (ведь земля как выяснилось не круглая!)

Проще было бы просто привести
float к double

И умножить на что угодно. Вы фактически ввели просто коэффициент увеличения.

Но это не есть картографическая проекция. Проекция — это отображение геоида на плоскость с минимальными искажениями. У Вас же, если Вы нарисуете например Аляску, она займет места как половина Африки.
А это не так.
А поскольку невозможно развернуть тело подобное шару на плоскость без искажений, то и существуют РАЗНЫЕ проекции для РАЗНЫХ целей. У одних, скажем максимум погрешности в вычислении площади, зато углы и длины практически не искажаются (проекция Меркатора). У других — по другому.
Очень рекомендую почитать гениальных предшественников, хотя бы Крассовского.
Иначе браться за это дело бессмысленно.
В целом, чтобы все было четко, эта работа как минимум на год.
И Вам прийдется начать с изучения новой профессии — картографа.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.