Страница 1 из 23

Конвертация кеша в/из разных форматов.

СообщениеДобавлено: 26 авг 2008, 15:44
svp
Ни в справке к программе, ни на форуме я не нашел достаточной информации о том, как и каких форматов можно использовать кеш в "SAS.Планета". Посему открываю эту тему.
Итак вопросы:
!. Есть набор [tsqr]*/.jpg файлов закачанных с гугла сторонними утилитами, либо обычным доунлоад-менеджером. Как эти файлы добавить в кеш программы?
2. Есть кеш SAS.Планета. Как получить набор tsqr-файлов некоторой области с некоторой детализацией?
3. Нельзя ли сделать менеджер закачек тайлов отдельно от программы? Очень полезен был бы консольный режим работы менеджера. Например можно было бы отдавать задания на закачку областей удалённому серверу. Опять же консольную утилитку легче сделать кроссплатформенной.

Re: Конвертация кеша в/из разных форматов

СообщениеДобавлено: 26 авг 2008, 16:51
feya
Ок.
Описание кэша SAS.Планета, а также возможности использовать кэши других типов
SAS.Планета может работать с 3-мя типами кэша:
1."Родной"
2.Кэш программы GoogleMV
3.Кэш программы EarthSlicer1.95

1. "Родной" кэш используется програмой по умолчанию. Функция определения пути к отдельному тайлу имеет следующий вид:
Код: Выделить всё
result:=path+'\z'+zoom+'\'+(x div 1024)+'\x'+x+'\'+(y div 1024)+'\y'+y+ext;
где
path - путь к папке кэша
zoom – уровень масштаба
x,y – позиция тайла относительно левого верхнего угла карты.

На мой взгляд имеет 2 преимущества:
* Максимальное количество тайлов в одной папке не превышает 1024 штуки
* Простота программной реализации.

2. Кэш программы GoogleMV можно использовать в программе указав в настройках “использовать кэш старого типа” и выбрав путь к кэшу. В ini-файле, ветка [PATH] параметр NameMapType_Old, следует указать названия папок отдельных типов карт. Так для спутниковой карты за место sat указываем kh, для политической за место map указывает mt и т.д.

Кэш GoogleMV имеет следующее преимущество:
* Интуитивность понимания формата хранения тайлов.

3. Кэш программы ES1.95 можно использовать в программе указав в настройках “использовать кэш ES1.95” и выбрав путь к кэшу. В ini-файле, ветка [PATH] параметр NameMapType_ES, следует указать названия папок отдельных типов карт.

Кэш ES1.95 имеет следующие преимущества:
* Ограничено максимальное количество тайлов в одной папке
* На масштабах с 1 по 7 имеет структуру идентичную GoogleMV

Re: Конвертация кеша в/из разных форматов

СообщениеДобавлено: 28 авг 2008, 07:23
ciberhunter
az Не думаете ли вы? что стоит переписать программу конвертации кеша из старого в новый формат. Может кто-то возмется написать конвертатор в котором будет использоваться однозначное преобразование SAS->GMV и GMV->SAS
При использовании внутреннего конвертора SASGIS он у меня замирает на 300 тайлах и все. Не могу переконвертировать свой кеш.
Как я понимаю Wiki не работает с старом формате?

Re: Конвертация кеша в/из разных форматов

СообщениеДобавлено: 28 авг 2008, 10:09
svp
Конвертер из набора TSQR-файлов в SAS у меня уже практически готов. Сделаю его консольным для начала. Причем конвертируются только те файлы, которые есть в кеше (без перебора всех возможных). В планах сделать и другие режимы конвертации. Есть только одно НО. Структура SAS-кеша здесь описана хорошо и понятно. Не поленитесь, кто-нибудь, для кого проблема насущна, описать так же лаконично структуры кешей других прог. Вот исходник модуля конвертации имён тайлов из TSQR-, SAS-формата в [прямоугольные координаты тайла, зум-фактор] и обратно:
uTSQRConversions.rar
исходник модуля конвертации имён тайлов
(1.53 KiB) Скачиваний: 768

Re: Конвертация кеша в/из разных форматов

СообщениеДобавлено: 28 авг 2008, 22:40
svp
Поспела, наконец, первая бета-версия консольного конвертера TSQR-кеша в кеш SAS,Планеты.
Исходный код открыт, правьте что пожелаете. Буду признателен, если поделитесь при этом конструктивными идеями и предложениями.
Использовать утилиту очень просто. При запуске без параметров из командной строки она сама подробно рассказывает как её применять.
Если у кого-то чего-то полетит или грохнется в связи с (или вопреки) моим стараниям, то, значит, приключился форс-мажор=). Пользуем на свой страх и риск, так как креш-тест утилиты не проводился.
Интересно, например, что быдет, если в качестве источника передать ей корень диска С: (НИ В КОЕМ СЛУЧАЕ НЕ ПРОБУЙТЕ.. пока..=).
А вообще у меня замечательно работает. 300 метров кеша 19 уровня затянула влёт.

Релиз:
TsqrToSas_rel_200808282228.rar
Релиз версии 0.1.18b
(64.86 KiB) Скачиваний: 957

Исходники:
TsqrToSas_src_200808282228.rar
Исходники версии 0.1.18b
(6.31 KiB) Скачиваний: 661

Компилилось всё на Delphi 6.

Re: Конвертация кеша в/из разных форматов

СообщениеДобавлено: 01 сен 2008, 22:48
feya
svp
Вот код которым я пользуюсь для доступа к тайла кэша EarthSliser:

Код: Выделить всё
function full(int,z:integer):string;
var s,s1:string;
    i:byte;
begin
result:='';
s:=inttostr(int);
s1:=inttostr(zoom[z] div 256);
for i:=length(s) to length(s1)-1 do result:=result+'0';
result:=result+s;
end;


// zoom - 256,512,1024,2048,4096,8192,16384 ....
//основная функция
Код: Выделить всё
   result:=ESCpath;
   name:=sbuf+'-'+full(x div 256,Azoom)+'-'+full(y div 256,Azoom);
   if Azoom<7
    then result:=result+pathmapES[type_]+'\'+sbuf+'\'+name+rasshmap[type_]
    else if Azoom<11
          then result:=result+pathmapES[type_]+'\'+sbuf+'\'+Chr(59+Azoom)+
                       full((x div 256)div 32,Azoom-5)+full((y div 256)div 32,Azoom-5)+'\'+name+Extmap[type_]
          else result:=result+pathmapES[type_]+'\'+'10'+'-'+full((x div round(power(2,Azoom-10)))div  256,10)+'-'+
                       full((y div round(power(2,Azoom-10)))div 256,10)+'\'+sbuf+'\'+Chr(59+Azoom)+
                       full((x div 256)div 32,Azoom-5)+full((y div 256)div 32,Azoom-5)+'\'+name+Extmap[type_];

очень каряво, но писал "главно чтоб работала") да и не вник я в суть данного кэша. Здесь x и y не координаты тайла а к-ты позиции на крте, те для 1-тайла 1-го зума y и x могут варьирываться от 0 до 255.
pathmapES - путь к отдельным папкам карт.

Re: Конвертация кеша в/из разных форматов

СообщениеДобавлено: 02 сен 2008, 12:51
svp
azya писал(а):Вот код которым я пользуюсь для доступа к тайла кэша EarthSliser:

Посмотрю на досуге.
А что, тот конвертер нормально работает? Пробовал кто-нибудь кроме меня?

Re: Конвертация кеша в/из разных форматов

СообщениеДобавлено: 04 сен 2008, 13:33
KAC
Ой спасибочки за конверте, а то я просто умираю без него.
Сегодня же опробую его вечером.
Правильно ли я понял что он сможет переконвертить кеш ES1.95 в кеш sas?
Приче не тупым перебором всех возможных вариантов, а именно только тех файлов которые есть..
у меня просто весь берлин в 21 уровне погибает... охото уже унифицировать все в SAS

Re: Конвертация кеша в/из разных форматов

СообщениеДобавлено: 04 сен 2008, 13:45
feya
KAC
Нет я так понял svp токо из/в googleMV/SAS.Planet сделал, но если его хорошо попросить может и поддержку ЕС сделает.

у меня просто весь берлин в 21 уровне погибает

Так мож просто сконвертить прям в программе выделить/сохранить, причем выделите токо берлин и времени много не затратите.

Re: Конвертация кеша в/из разных форматов

СообщениеДобавлено: 04 сен 2008, 15:14
KAC
Дело в том что именно и затратит дохера времени:)
очень трудно выделить те места которые я скачал, а выделять с запасом я не хочу.
to svp можешь сделать такой конвертер, пожалуйста...
будь дргом, командная строка для меня тоже попрет...