Страница 1 из 2
Координаты MERCATOR(WGS84) в Geographic
Добавлено: 03 авг 2011, 13:38
ArzArt
С помощью программы 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, возможно ли с помощью него осуществить такое преобразование?
Re: Координаты MERCATOR(WGS84) в Geographic
Добавлено: 03 авг 2011, 14:21
ggis
а если в самом глобал маппере задать систему координат географическую и сделать экспорт карты?
Re: Координаты MERCATOR(WGS84) в Geographic
Добавлено: 03 авг 2011, 14:28
ArzArt
В этом случае карта получается какой-то сплюснутой по вертикали, хотя может я что-то не так делаю, только начал разбираться.
Re: Координаты MERCATOR(WGS84) в Geographic
Добавлено: 03 авг 2011, 14:34
ggis
да сплюснутая.
Re: Координаты MERCATOR(WGS84) в Geographic
Добавлено: 03 авг 2011, 14:42
ArzArt
Но даже если поменять, координаты будут вида 43.8341, 55.3863, а должны быть, по карте, такие: 435003,93 и 552312,42 как-то не так.
Re: Координаты MERCATOR(WGS84) в Geographic
Добавлено: 03 авг 2011, 14:55
ggis
ArzArt писал(а):Но даже если поменять, координаты будут вида 43.8341, 55.3863, а должны быть, по карте, такие: 435003,93 и 552312,42 как-то не так.
не нашел в глобале чтобы координаты на дисплей выводились вида 435003,93 и 552312,42 при географической системе координат

Re: Координаты MERCATOR(WGS84) в Geographic
Добавлено: 03 авг 2011, 15:03
ArzArt
Это я из 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)
Re: Координаты MERCATOR(WGS84) в Geographic
Добавлено: 03 авг 2011, 15:10
ggis
43.8341035371=43+50/60+2.7727/3600, все правильно просто форма представления разная (десятичные градусы и градусы-минуты-секунды)
Re: Координаты MERCATOR(WGS84) в Geographic
Добавлено: 03 авг 2011, 15:27
ArzArt
Извиняюсь за тупость, к вечеру голова совсем не варит.
По первоначальному варианту, именно из MERCAT (WGS84): У меня есть (4879590.274, 7402011.503) можно как-то из них получить (5523'10.7176''N, 4350'02.7788''E)?
А то со сплюснутой картой работать не хочется.
Re: Координаты MERCATOR(WGS84) в Geographic
Добавлено: 03 авг 2011, 15:48
ggis
ArzArt писал(а):Извиняюсь за тупость, к вечеру голова совсем не варит.
По первоначальному варианту, именно из MERCAT (WGS84): У меня есть (4879590.274, 7402011.503) можно как-то из них получить (5523'10.7176''N, 4350'02.7788''E)?
А то со сплюснутой картой работать не хочется.
в глобале оно так и представляется, внизу на панели пишутся и метры и градусы, или я не понял вопроса?
Re: Координаты MERCATOR(WGS84) в Geographic
Добавлено: 03 авг 2011, 15:58
ArzArt
Я эту карту пихаю в Sharpmap в проге своей. А там у меня получается достать координаты вида (4879590.274, 7402011.503).
Через worldPos.X.ToString("N4") и worldPos.Y.ToString("N4")
А мне хочется их привести к (5523'10.7176''N, 4350'02.7788''E) как Glabal Mapper делает.
Re: Координаты MERCATOR(WGS84) в Geographic
Добавлено: 03 авг 2011, 16:07
ggis
Sharpmap мне не известен, к сожалению
"А мне хочется их привести к (5523'10.7176''N, 4350'02.7788''E) как Glabal Mapper делает."-визуально на дисплей, не меняя саму карту?
Re: Координаты MERCATOR(WGS84) в Geographic
Добавлено: 03 авг 2011, 17:03
ArzArt
Я имею ввиду просто из этого числа получить другое, без всякой привязке к карте. Может формула есть какая или алгоритм? С картой делать ничего не надо, она пусть будет в MERCAT (WGS84).
Re: Координаты MERCATOR(WGS84) в Geographic
Добавлено: 03 авг 2011, 17:06
Mavka
Весь топик не читал, но может быть вас заинтересует:
Google Maps и их сферические проекции
Re: Координаты MERCATOR(WGS84) в Geographic
Добавлено: 03 авг 2011, 17:11
ArzArt
Спасибо, посмотрю.
Еще такое нашел:
Код: Выделить всё
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
Но непонятно что за цифры? Откуда взялись?