Координаты MERCATOR(WGS84) в Geographic

Системы координат, проекции, преобразования, привязка
ArzArt
Новоприбывший
Сообщения: 12
Зарегистрирован: 03 авг 2011, 13:12
Репутация: 0

Координаты MERCATOR(WGS84) в Geographic

Сообщение ArzArt » 03 авг 2011, 13:38

С помощью программы SASPlanet, я склеил карту в jpg-файл, с файлом привязки *.map.
Если открыть эту jpg-карту в программе Glabal Mapper (v12.02) например, то там снизу будет информация по текущим координатам курсора на карте, примерно такого вида:

MERCAT (WGS84) - (4879590.274, 7402011.503) | 5523'10.7176''N, 4350'02.7788''E

Как осуществляется перевод из MERCAT (WGS84) в географические координаты?
Я пытаюсь работать с Sharpmap, возможно ли с помощью него осуществить такое преобразование?

ggis
Завсегдатай
Сообщения: 302
Зарегистрирован: 31 окт 2008, 10:39
Репутация: 2

Re: Координаты MERCATOR(WGS84) в Geographic

Сообщение ggis » 03 авг 2011, 14:21

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

ArzArt
Новоприбывший
Сообщения: 12
Зарегистрирован: 03 авг 2011, 13:12
Репутация: 0

Re: Координаты MERCATOR(WGS84) в Geographic

Сообщение ArzArt » 03 авг 2011, 14:28

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

ggis
Завсегдатай
Сообщения: 302
Зарегистрирован: 31 окт 2008, 10:39
Репутация: 2

Re: Координаты MERCATOR(WGS84) в Geographic

Сообщение ggis » 03 авг 2011, 14:34

да сплюснутая.

ArzArt
Новоприбывший
Сообщения: 12
Зарегистрирован: 03 авг 2011, 13:12
Репутация: 0

Re: Координаты MERCATOR(WGS84) в Geographic

Сообщение ArzArt » 03 авг 2011, 14:42

Но даже если поменять, координаты будут вида 43.8341, 55.3863, а должны быть, по карте, такие: 435003,93 и 552312,42 как-то не так.

ggis
Завсегдатай
Сообщения: 302
Зарегистрирован: 31 окт 2008, 10:39
Репутация: 2

Re: Координаты MERCATOR(WGS84) в Geographic

Сообщение ggis » 03 авг 2011, 14:55

ArzArt писал(а):Но даже если поменять, координаты будут вида 43.8341, 55.3863, а должны быть, по карте, такие: 435003,93 и 552312,42 как-то не так.
не нашел в глобале чтобы координаты на дисплей выводились вида 435003,93 и 552312,42 при географической системе координат :(

ArzArt
Новоприбывший
Сообщения: 12
Зарегистрирован: 03 авг 2011, 13:12
Репутация: 0

Re: Координаты MERCATOR(WGS84) в Geographic

Сообщение ArzArt » 03 авг 2011, 15:03

Это я из SASPlanet взял.
Сейчас поменял на географическую систему, пишет так:
GEO (WGS84) (43.8341035371, 55.3863038114) | 5523'10.6937''N, 4350'02.7727''E
Не совпадают, нужны такие (5523'10.6937''N, 4350'02.7727''E) а не (43.8341035371, 55.3863038114)

ggis
Завсегдатай
Сообщения: 302
Зарегистрирован: 31 окт 2008, 10:39
Репутация: 2

Re: Координаты MERCATOR(WGS84) в Geographic

Сообщение ggis » 03 авг 2011, 15:10

43.8341035371=43+50/60+2.7727/3600, все правильно просто форма представления разная (десятичные градусы и градусы-минуты-секунды)

ArzArt
Новоприбывший
Сообщения: 12
Зарегистрирован: 03 авг 2011, 13:12
Репутация: 0

Re: Координаты MERCATOR(WGS84) в Geographic

Сообщение ArzArt » 03 авг 2011, 15:27

Извиняюсь за тупость, к вечеру голова совсем не варит.
По первоначальному варианту, именно из MERCAT (WGS84): У меня есть (4879590.274, 7402011.503) можно как-то из них получить (5523'10.7176''N, 4350'02.7788''E)?

А то со сплюснутой картой работать не хочется.

ggis
Завсегдатай
Сообщения: 302
Зарегистрирован: 31 окт 2008, 10:39
Репутация: 2

Re: Координаты MERCATOR(WGS84) в Geographic

Сообщение ggis » 03 авг 2011, 15:48

ArzArt писал(а):Извиняюсь за тупость, к вечеру голова совсем не варит.
По первоначальному варианту, именно из MERCAT (WGS84): У меня есть (4879590.274, 7402011.503) можно как-то из них получить (5523'10.7176''N, 4350'02.7788''E)?

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

ArzArt
Новоприбывший
Сообщения: 12
Зарегистрирован: 03 авг 2011, 13:12
Репутация: 0

Re: Координаты MERCATOR(WGS84) в Geographic

Сообщение ArzArt » 03 авг 2011, 15:58

Я эту карту пихаю в Sharpmap в проге своей. А там у меня получается достать координаты вида (4879590.274, 7402011.503).
Через worldPos.X.ToString("N4") и worldPos.Y.ToString("N4")
А мне хочется их привести к (5523'10.7176''N, 4350'02.7788''E) как Glabal Mapper делает.

ggis
Завсегдатай
Сообщения: 302
Зарегистрирован: 31 окт 2008, 10:39
Репутация: 2

Re: Координаты MERCATOR(WGS84) в Geographic

Сообщение ggis » 03 авг 2011, 16:07

Sharpmap мне не известен, к сожалению
"А мне хочется их привести к (5523'10.7176''N, 4350'02.7788''E) как Glabal Mapper делает."-визуально на дисплей, не меняя саму карту?

ArzArt
Новоприбывший
Сообщения: 12
Зарегистрирован: 03 авг 2011, 13:12
Репутация: 0

Re: Координаты MERCATOR(WGS84) в Geographic

Сообщение ArzArt » 03 авг 2011, 17:03

Я имею ввиду просто из этого числа получить другое, без всякой привязке к карте. Может формула есть какая или алгоритм? С картой делать ничего не надо, она пусть будет в MERCAT (WGS84).

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: Координаты MERCATOR(WGS84) в Geographic

Сообщение Mavka » 03 авг 2011, 17:06

Весь топик не читал, но может быть вас заинтересует:
Google Maps и их сферические проекции
лангольеры под окном жрали время ом-ном-ном

ArzArt
Новоприбывший
Сообщения: 12
Зарегистрирован: 03 авг 2011, 13:12
Репутация: 0

Re: Координаты MERCATOR(WGS84) в Geographic

Сообщение ArzArt » 03 авг 2011, 17:11

Спасибо, посмотрю.

Еще такое нашел:

Код: Выделить всё

private void ToGeographic(ref double mercatorX_lon, ref double mercatorY_lat)
{
    if (Math.Abs(mercatorX_lon) < 180 && Math.Abs(mercatorY_lat) < 90)
        return;

    if ((Math.Abs(mercatorX_lon) > 20037508.3427892) || (Math.Abs(mercatorY_lat) > 20037508.3427892))
        return;

    double x = mercatorX_lon;
    double y = mercatorY_lat;
    double num3 = x / 6378137.0;
    double num4 = num3 * 57.295779513082323;
    double num5 = Math.Floor((double)((num4 + 180.0) / 360.0));
    double num6 = num4 - (num5 * 360.0);
    double num7 = 1.5707963267948966 - (2.0 * Math.Atan(Math.Exp((-1.0 * y) / 6378137.0)));
    mercatorX_lon = num6;
    mercatorY_lat = num7 * 57.295779513082323;
}
http://www.gal-systems.com/2011/07/conv ... n-web.html
Но непонятно что за цифры? Откуда взялись?

Ответить

Вернуться в «Координаты и привязка»

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

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