Google Earth

Обсуждение различной информации связанной с картографией в САСе, а также сторонние программные продукты для связки с САСом

Модератор: Tolik

zed
Гуру
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз
Поблагодарили: 568 раз

Re: Google Earth

Сообщение zed »

Да, есть и такие (распаковать оба архива в одну папку, пришлось разрезать т.к. на сайте ограничение на max размер вложения в 256КБ). Правда, получает файлы по-одному. Сайт автора проги http://google-earth.narod.ru/, спросите, может он уже и пачками качает
ciberhunter
Новичок
Сообщения: 25
Зарегистрирован: 14 июл 2008, 08:31

Re: Google Earth

Сообщение ciberhunter »

Что-то у меня не работает программа. Или я не понимаю как она работает.
zed
Гуру
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз
Поблагодарили: 568 раз

Re: Google Earth

Сообщение zed »

жмём кнопочку Get SessionKey (происходит авторизация на сервере), затем GetData. И если такой файл существует - то он появиться в папке с программой (+ его распакованная и расшифрованная версии)
ciberhunter
Новичок
Сообщения: 25
Зарегистрирован: 14 июл 2008, 08:31

Re: Google Earth

Сообщение ciberhunter »

zed Можно надеяться что Доунлоадер полноценный скоро появится?
Для просмотра можно тот же SASGIS использовать. Но тут же видно необходимо преобразование проекций. Видеокарты современные умножением матриц на вектор на раз занимаются.
zed
Гуру
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз
Поблагодарили: 568 раз

Re: Google Earth

Сообщение zed »

ciberhunter писал(а):Можно надеяться что Доунлоадер полноценный скоро появится?

Это наврят ли. Автор заморозил все свои разработки по GE из-за нехватки времени, а может, просто надоело.
Что бы сделать качалку, нужно разобраться с файлами q2 (в них зашита инфа по версиям всех типов данных для данной области), чтоб знать, какую версию файлов запрашивать с сервера. Структура q2 известна, но неизвестно назначение той или иной версии (для какого она именно типа данных и для какого уровня зума) В общем, не то чтоб уж очень сложно - просто нужно время и желание. Как только появиться доброволец - так и появиться качалка.
А насчёт того, чем это всё можно просматривать - мне понравился NASA World Wide. У него открытый кэш (россыпь картинок в папке) и очень легко можно экспортировать в кэш NASA любой другой кэш (проекция аналогичная GoogleMaps, поэтому кэш GE нужно перепроецировать, наверное). Да и NASA поудобнее будет, чем SASGIS, но топорнее чем GE.
zed
Гуру
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз
Поблагодарили: 568 раз

Re: Google Earth

Сообщение zed »

CacheMaster - программа, при помощи которй можно:
1.Распаковать кэш GoogleEarth (можно извлекать не только картинки, а и все данные);
2.Экспортировать распакованный кэш GoogleEarth в KML.

Используя CacheMaster, можно создать свой kml-кэш, который затем можно просматривать в самом гугле. Без лимита на кэш в 2Гб.
Cowa
Постигающий Дао
Сообщения: 173
Зарегистрирован: 23 авг 2008, 01:46

Re: Google Earth

Сообщение Cowa »

aleksey писал(а):zed
Разобрался с проекциями GoogleEarth и GoogleMaps на программном уровне, т.е. могу тайлы GE разжимать чтоб картинка не казалась сжатой (тайлы извлечённые GE_JPG_extractor-ом), если кто заинтересован, могу подкинуть подробную инфу.

Был бы очень признателен, а то очень давно пытаюсь одно преобразовать в другое.
zed
Гуру
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз
Поблагодарили: 568 раз

Re: Google Earth

Сообщение zed »

Думаю, в исходниках будет всё понятно, если что - спрашивайте.
Единственное замечание: не нашёл (плохо или не там искал?) точной формулы для расчёта параметра метр/градус для широты. Приближённая формула начинает давать ошибку в 1 и более пиксель начиная с 1 до примерно 8-го уровня зума, но на более высоких уровнях - всё точняк. Если вам вдруг попадётся на глаза точная формула - покажите её и мне.
Cowa
Постигающий Дао
Сообщения: 173
Зарегистрирован: 23 авг 2008, 01:46

Re: Google Earth

Сообщение Cowa »

Спасибо за исходник. В принципе, все понятно. Я думал, что в 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 в проекцию Яндекс-карт(уж не знаю, че там за проекция).
Аватара пользователя
feya
Гуру
Сообщения: 2034
Зарегистрирован: 13 июл 2008, 10:45
Благодарил (а): 5 раз
Поблагодарили: 56 раз

Re: Google Earth

Сообщение feya »

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
Ответить

Вернуться в «Другие программы»