Google Earth
Модератор: Tolik
-
zed
- Гуру
- Сообщения: 2888
- Зарегистрирован: 16 авг 2008, 20:21
- Благодарил (а): 89 раз
- Поблагодарили: 568 раз
Re: Google Earth
Да, есть и такие (распаковать оба архива в одну папку, пришлось разрезать т.к. на сайте ограничение на max размер вложения в 256КБ). Правда, получает файлы по-одному. Сайт автора проги http://google-earth.narod.ru/, спросите, может он уже и пачками качает
-
ciberhunter
- Новичок
- Сообщения: 25
- Зарегистрирован: 14 июл 2008, 08:31
-
zed
- Гуру
- Сообщения: 2888
- Зарегистрирован: 16 авг 2008, 20:21
- Благодарил (а): 89 раз
- Поблагодарили: 568 раз
Re: Google Earth
жмём кнопочку Get SessionKey (происходит авторизация на сервере), затем GetData. И если такой файл существует - то он появиться в папке с программой (+ его распакованная и расшифрованная версии)
-
ciberhunter
- Новичок
- Сообщения: 25
- Зарегистрирован: 14 июл 2008, 08:31
Re: Google Earth
zed Можно надеяться что Доунлоадер полноценный скоро появится?
Для просмотра можно тот же SASGIS использовать. Но тут же видно необходимо преобразование проекций. Видеокарты современные умножением матриц на вектор на раз занимаются.
Для просмотра можно тот же SASGIS использовать. Но тут же видно необходимо преобразование проекций. Видеокарты современные умножением матриц на вектор на раз занимаются.
-
zed
- Гуру
- Сообщения: 2888
- Зарегистрирован: 16 авг 2008, 20:21
- Благодарил (а): 89 раз
- Поблагодарили: 568 раз
Re: Google Earth
ciberhunter писал(а):Можно надеяться что Доунлоадер полноценный скоро появится?
Это наврят ли. Автор заморозил все свои разработки по GE из-за нехватки времени, а может, просто надоело.
Что бы сделать качалку, нужно разобраться с файлами q2 (в них зашита инфа по версиям всех типов данных для данной области), чтоб знать, какую версию файлов запрашивать с сервера. Структура q2 известна, но неизвестно назначение той или иной версии (для какого она именно типа данных и для какого уровня зума) В общем, не то чтоб уж очень сложно - просто нужно время и желание. Как только появиться доброволец - так и появиться качалка.
А насчёт того, чем это всё можно просматривать - мне понравился NASA World Wide. У него открытый кэш (россыпь картинок в папке) и очень легко можно экспортировать в кэш NASA любой другой кэш (проекция аналогичная GoogleMaps, поэтому кэш GE нужно перепроецировать, наверное). Да и NASA поудобнее будет, чем SASGIS, но топорнее чем GE.
-
zed
- Гуру
- Сообщения: 2888
- Зарегистрирован: 16 авг 2008, 20:21
- Благодарил (а): 89 раз
- Поблагодарили: 568 раз
Re: Google Earth
CacheMaster - программа, при помощи которй можно:
1.Распаковать кэш GoogleEarth (можно извлекать не только картинки, а и все данные);
2.Экспортировать распакованный кэш GoogleEarth в KML.
Используя CacheMaster, можно создать свой kml-кэш, который затем можно просматривать в самом гугле. Без лимита на кэш в 2Гб.
1.Распаковать кэш GoogleEarth (можно извлекать не только картинки, а и все данные);
2.Экспортировать распакованный кэш GoogleEarth в KML.
Используя CacheMaster, можно создать свой kml-кэш, который затем можно просматривать в самом гугле. Без лимита на кэш в 2Гб.
Re: Google Earth
aleksey писал(а):zed
Разобрался с проекциями GoogleEarth и GoogleMaps на программном уровне, т.е. могу тайлы GE разжимать чтоб картинка не казалась сжатой (тайлы извлечённые GE_JPG_extractor-ом), если кто заинтересован, могу подкинуть подробную инфу.
Был бы очень признателен, а то очень давно пытаюсь одно преобразовать в другое.
-
zed
- Гуру
- Сообщения: 2888
- Зарегистрирован: 16 авг 2008, 20:21
- Благодарил (а): 89 раз
- Поблагодарили: 568 раз
Re: Google Earth
Думаю, в исходниках будет всё понятно, если что - спрашивайте.
Единственное замечание: не нашёл (плохо или не там искал?) точной формулы для расчёта параметра метр/градус для широты. Приближённая формула начинает давать ошибку в 1 и более пиксель начиная с 1 до примерно 8-го уровня зума, но на более высоких уровнях - всё точняк. Если вам вдруг попадётся на глаза точная формула - покажите её и мне.
Единственное замечание: не нашёл (плохо или не там искал?) точной формулы для расчёта параметра метр/градус для широты. Приближённая формула начинает давать ошибку в 1 и более пиксель начиная с 1 до примерно 8-го уровня зума, но на более высоких уровнях - всё точняк. Если вам вдруг попадётся на глаза точная формула - покажите её и мне.
Re: Google Earth
Спасибо за исходник. В принципе, все понятно. Я думал, что в GoogleEarth проекция немного посложнее. Все просто.
А тебе, я так понимаю, нужно получить соотношение метр/градус для GoogleMaps. Я у себя рассчитываю метр/пиксель (из чего можно получить и метр/градус если нужно). В этом случае, мне кажется будет проще сканировать(в твоей проге) картинку не по градусам, а по пикселям. Но это мое мнение
. Меньше будет округлений.
Если интересно, то у меня соотношение метр/пиксель для широты считается так:
// Размер половины мировой карты в пикселях на уровне детализации Z (начиная от 1 до ... как в SAS.Планет)
size := 128*Ldexp(1,Z-1);
// метров на пиксель на широте Y градусов (от экватора от 0 до ~85 градусов в обе стороны).
MetrPics:=20016332.8/size*Cos(Y*PI/180); // 20016332.8 - не помню откуда взял, но тоже не точно
Поможет - буду рад.
P.S. Мне больше было бы интересно как пересчитываются градусы из проекции GoogleMaps в проекцию Яндекс-карт(уж не знаю, че там за проекция).
А тебе, я так понимаю, нужно получить соотношение метр/градус для GoogleMaps. Я у себя рассчитываю метр/пиксель (из чего можно получить и метр/градус если нужно). В этом случае, мне кажется будет проще сканировать(в твоей проге) картинку не по градусам, а по пикселям. Но это мое мнение
Если интересно, то у меня соотношение метр/пиксель для широты считается так:
// Размер половины мировой карты в пикселях на уровне детализации Z (начиная от 1 до ... как в SAS.Планет)
size := 128*Ldexp(1,Z-1);
// метров на пиксель на широте Y градусов (от экватора от 0 до ~85 градусов в обе стороны).
MetrPics:=20016332.8/size*Cos(Y*PI/180); // 20016332.8 - не помню откуда взял, но тоже не точно
Поможет - буду рад.
P.S. Мне больше было бы интересно как пересчитываются градусы из проекции GoogleMaps в проекцию Яндекс-карт(уж не знаю, че там за проекция).
- feya
- Гуру
- Сообщения: 2034
- Зарегистрирован: 13 июл 2008, 10:45
- Благодарил (а): 5 раз
- Поблагодарили: 56 раз
Re: Google Earth
P.S. Мне больше было бы интересно как пересчитываются градусы из проекции GoogleMaps в проекцию Яндекс-карт(уж не знаю, че там за проекция).
проекция та же меркатор, токо на элиипсоиде вот здесь есть описание функции - http://mapnav.spb.ru/site/e107_plugins/ ... p?13518.50
У мя подругому:
вот функции использующиеся в программе (2: какраз меркатор на элиипсоиде):
Код: Выделить всё
function GPos2LonLat(XY:TPoint;Azoom:byte;MT:PMapType):TExtendedPoint;
var zu,zum1,yy:extended;
begin
result.X:=((XY.x)-zoom[Azoom]/2)/(zoom[Azoom]/360);
case MT.projection of
1: begin
result.Y:=((XY.y)-zoom[Azoom]/2)/-(zoom[Azoom]/(2*PI));
result.Y:=(2*arctan(exp(result.Y))-PI/2)*180/PI;
end;
2: begin
result.Y:=((XY.y)-zoom[Azoom]/2)/-(zoom[Azoom]/(2*PI));
result.Y:=(2*arctan(exp(result.Y))-PI/2)*180/PI;
Zu:=result.y/(180/Pi);
yy:=((XY.y)-zoom[Azoom]/2);
repeat
Zum1:=Zu;
Zu:=arcsin(1-((1+Sin(Zum1))*power(1-MT.exct*sin(Zum1),MT.exct))/(exp((2*yy)/-(zoom[Azoom]/(2*Pi)))*power(1+MT.exct*sin(Zum1),MT.exct)));
until (abs(Zum1-Zu)<MerkElipsK)or(isNAN(Zu));
if not(isNAN(Zu)) then result.Y:=zu*180/Pi;
end;
3: begin
result.y:=-((XY.y)-zoom[Azoom]/2)/(zoom[Azoom]/360);
end;
end;
end;
function GLonLat2Pos(Ll:TExtendedPoint;Azoom:byte;MT:PMapType):Tpoint;
var z,c:real;
begin
result.x:=round(zoom[Azoom]/2+ll.x*(zoom[Azoom]/360));
case MT.projection of
1: begin
z:=sin(Ll.y*deg);
c:=(zoom[Azoom]/(2*Pi));
result.y:=round(zoom[Azoom]/2-0.5*ln((1+z)/(1-z))*c);
end;
2: begin
z:=sin(Ll.y*deg);
c:=(zoom[Azoom]/(2*Pi));
result.y:=round(zoom[Azoom]/2-c*(ArcTanh(sin(ll.y*deg))-MT.exct*ArcTanh(MT.exct*sin(ll.y*deg))) )
end;
3: result.y:=round(zoom[Azoom]/2-ll.y*(zoom[Azoom]/360));
end;
end;http://sasgis.org | SAS.Планета | SASPlanet