SASGIS - SAS.Планета
View Issue Details
0001195SAS.Планета[All Projects] Хотелкаpublic28-02-2012 15:3710-10-2012 11:44
vasketsov 
vasketsov 
normalfeatureN/A
closedfixed 
WindowsVistaUltimate
110418 
120808120808 
0001195: Переключение версии снимков для кэша GE
Залил, сегодня или завра (в зависимости от желания собрать сегодня или ждать ночнушку) - можно уже "поиграться".

По идее получился общий интерфейс для хранилищ, которые умеют сообщать о списке доступных версий для тайла.

Пока только GE и пока без дат, дальше посмотрим. Основной кайф для исторического режима, в обычном там одна версия.

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

Из недоделок - ума не приложу, как заставить обновиться карту после смены версии, нифига не получилось с этим, так что после смены версии надо подвинуть карту мышкой.
google earth, вики, исторические снимки
related to 0000403closed vdemidov Исторические снимки из кэша GE 
related to 0000264confirmed  Возможность скачки "исторических снимков" GE 
related to 0000361closed vdemidov Показать исторические фотографии 
related to 0001253closed vasketsov Ускорение отрисовки карты заполнения для нефайловых типов кэша 
related to 0001292closed vasketsov Полосатый Google Earth 
jpg 5140.jpg (125,991) 06-03-2012 05:10
https://bugtracker.sasgis.org/file_download.php?file_id=678&type=bug
jpg

jpg 5154.jpg (46,992) 06-03-2012 05:10
https://bugtracker.sasgis.org/file_download.php?file_id=679&type=bug
jpg

png 2012-03-06_131332.png (153,334) 06-03-2012 09:19
https://bugtracker.sasgis.org/file_download.php?file_id=682&type=bug
png

png 2012-03-06_130841.png (57,342) 06-03-2012 09:19
https://bugtracker.sasgis.org/file_download.php?file_id=683&type=bug
png

png 2012-03-06_131344.png (203,038) 06-03-2012 10:55
https://bugtracker.sasgis.org/file_download.php?file_id=684&type=bug
png

png 2012-03-06_131409.png (99,435) 06-03-2012 10:56
https://bugtracker.sasgis.org/file_download.php?file_id=685&type=bug
png

rar TileStorage_GC_1.0.0.6.rar (134,856) 05-04-2012 08:44
https://bugtracker.sasgis.org/file_download.php?file_id=742&type=bug
rar TileStorage_GE_1.0.0.8.rar (116,869) 22-05-2012 05:19
https://bugtracker.sasgis.org/file_download.php?file_id=826&type=bug
7z TileStorage_GC_1.0.0.8.7z (67,744) 22-06-2012 19:38
https://bugtracker.sasgis.org/file_download.php?file_id=854&type=bug
7z TileStorage_GE_1.0.0.9.7z (52,221) 22-06-2012 19:38
https://bugtracker.sasgis.org/file_download.php?file_id=855&type=bug
Issue History
28-02-2012 15:37vasketsovNew Issue
28-02-2012 15:37vasketsovAssigned To => vasketsov
28-02-2012 15:37vasketsovStatusnew => assigned
28-02-2012 16:08vasketsovNote Added: 0005718
28-02-2012 16:08vasketsovStatusassigned => resolved
28-02-2012 16:08vasketsovFixed in Version => 120808
28-02-2012 16:08vasketsovResolutionopen => fixed
29-02-2012 00:31vasketsovNote Added: 0005731
29-02-2012 09:17gpsMaxTag Attached: исторические снимки
29-02-2012 09:17gpsMaxRelationship addedrelated to 0000403
29-02-2012 09:18gpsMaxTag Attached: 264
29-02-2012 09:18gpsMaxTag Detached: 264
29-02-2012 09:18gpsMaxRelationship addedrelated to 0000264
29-02-2012 09:18gpsMaxRelationship addedrelated to 0000361
29-02-2012 11:36TolikNote Added: 0005740
29-02-2012 11:41TolikNote Edited: 0005740bug_revision_view_page.php?bugnote_id=5740#r2889
29-02-2012 12:16vasketsovNote Added: 0005744
29-02-2012 12:25TolikNote Added: 0005745
29-02-2012 12:29vasketsovNote Added: 0005746
29-02-2012 12:30vasketsovFile Added: SASPlanet_GE_Dates.rar
29-02-2012 12:34vasketsovNote Edited: 0005746bug_revision_view_page.php?bugnote_id=5746#r2891
29-02-2012 12:35TolikNote Added: 0005747
29-02-2012 12:39vasketsovNote Added: 0005748
29-02-2012 12:39TolikNote Added: 0005749
29-02-2012 12:39vasketsovNote Edited: 0005748bug_revision_view_page.php?bugnote_id=5748#r2893
29-02-2012 12:40TolikNote Edited: 0005749bug_revision_view_page.php?bugnote_id=5749#r2895
29-02-2012 12:42TolikNote Edited: 0005749bug_revision_view_page.php?bugnote_id=5749#r2896
29-02-2012 12:46vasketsovNote Added: 0005750
29-02-2012 12:48vasketsovNote Edited: 0005750bug_revision_view_page.php?bugnote_id=5750#r2898
29-02-2012 13:05TolikNote Added: 0005754
29-02-2012 13:07TolikNote Edited: 0005754bug_revision_view_page.php?bugnote_id=5754#r2900
29-02-2012 13:18vasketsovNote Added: 0005757
29-02-2012 13:20TolikNote Added: 0005758
29-02-2012 16:35zedNote Added: 0005760
29-02-2012 16:38zedNote Edited: 0005760bug_revision_view_page.php?bugnote_id=5760#r2902
29-02-2012 16:44vasketsovNote Added: 0005761
29-02-2012 17:11vasketsovNote Edited: 0005761bug_revision_view_page.php?bugnote_id=5761#r2904
01-03-2012 07:45TolikNote Added: 0005762
01-03-2012 08:01vasketsovNote Added: 0005763
01-03-2012 08:19vdemidovFile Deleted: SASPlanet_GE_Dates.rar
01-03-2012 13:41vasketsovNote Added: 0005766
01-03-2012 13:45vasketsovNote Added: 0005767
01-03-2012 13:47vasketsovNote Edited: 0005766bug_revision_view_page.php?bugnote_id=5766#r2908
01-03-2012 14:03TolikNote Added: 0005768
01-03-2012 16:42zedNote Added: 0005770
01-03-2012 17:08vasketsovNote Added: 0005771
02-03-2012 05:01TolikNote Added: 0005774
02-03-2012 05:04TolikNote Added: 0005775
02-03-2012 05:07TolikNote Added: 0005776
02-03-2012 05:08TolikNote Edited: 0005775bug_revision_view_page.php?bugnote_id=5775#r2913
02-03-2012 05:12TolikNote Edited: 0005775bug_revision_view_page.php?bugnote_id=5775#r2914
02-03-2012 05:12TolikNote Edited: 0005775bug_revision_view_page.php?bugnote_id=5775#r2915
02-03-2012 07:15vasketsovNote Added: 0005777
02-03-2012 13:10vdemidovProduct Version => 110418
02-03-2012 13:10vdemidovTarget Version => 120808
04-03-2012 10:14vasketsovNote Added: 0005793
04-03-2012 10:22zedNote Added: 0005794
04-03-2012 10:52vdemidovNote Added: 0005795
04-03-2012 11:07zedNote Added: 0005796
05-03-2012 23:10vasketsovFile Added: GE_GC_for_SAS.rar
06-03-2012 04:51zedNote Added: 0005818
06-03-2012 05:02TolikNote Added: 0005820
06-03-2012 05:09TolikNote Added: 0005821
06-03-2012 05:10TolikFile Added: 5140.jpg
06-03-2012 05:10TolikFile Added: 5154.jpg
06-03-2012 05:12TolikNote Edited: 0005820bug_revision_view_page.php?bugnote_id=5820#r2939
06-03-2012 05:13zedNote Added: 0005822
06-03-2012 05:18TolikNote Added: 0005823
06-03-2012 05:18zedNote Edited: 0005822bug_revision_view_page.php?bugnote_id=5822#r2941
06-03-2012 05:20zedNote Added: 0005824
06-03-2012 05:24TolikNote Added: 0005825
06-03-2012 05:38zedNote Added: 0005826
06-03-2012 06:03TolikNote Added: 0005827
06-03-2012 06:07zedNote Added: 0005828
06-03-2012 08:29TolikNote Added: 0005831
06-03-2012 08:46vasketsovNote Added: 0005833
06-03-2012 09:18TolikFile Added: 2012-03-06_131409.png
06-03-2012 09:18TolikFile Added: 2012-03-06_131344.png
06-03-2012 09:18TolikFile Deleted: 2012-03-06_131409.png
06-03-2012 09:18TolikFile Deleted: 2012-03-06_131344.png
06-03-2012 09:19TolikFile Added: 2012-03-06_131332.png
06-03-2012 09:19TolikFile Added: 2012-03-06_130841.png
06-03-2012 09:21TolikNote Added: 0005834
06-03-2012 10:12vasketsovNote Added: 0005835
06-03-2012 10:14vasketsovNote Edited: 0005835bug_revision_view_page.php?bugnote_id=5835#r2945
06-03-2012 10:41vasketsovNote Edited: 0005835bug_revision_view_page.php?bugnote_id=5835#r2946
06-03-2012 10:53TolikNote Added: 0005836
06-03-2012 10:55TolikNote Added: 0005837
06-03-2012 10:55TolikFile Added: 2012-03-06_131344.png
06-03-2012 10:56TolikFile Added: 2012-03-06_131409.png
06-03-2012 10:57TolikNote Edited: 0005837bug_revision_view_page.php?bugnote_id=5837#r2950
06-03-2012 10:59vasketsovFile Added: TileStorage_GE_nocheck.rar
06-03-2012 10:59TolikNote Edited: 0005837bug_revision_view_page.php?bugnote_id=5837#r2951
06-03-2012 11:01TolikNote Added: 0005838
06-03-2012 11:03vasketsovNote Added: 0005839
06-03-2012 11:04TolikNote Added: 0005840
06-03-2012 11:13vasketsovFile Deleted: TileStorage_GE_nocheck.rar
06-03-2012 11:19zedNote Added: 0005842
06-03-2012 11:29vasketsovNote Added: 0005844
06-03-2012 11:35vasketsovNote Deleted: 0005844
06-03-2012 11:38TolikNote Added: 0005846
06-03-2012 11:49TolikNote Added: 0005847
06-03-2012 12:03vdemidovNote Added: 0005848
06-03-2012 12:32vasketsovNote Added: 0005849
06-03-2012 12:33vasketsovNote Edited: 0005849bug_revision_view_page.php?bugnote_id=5849#r2955
06-03-2012 12:36zedNote Added: 0005850
06-03-2012 12:46vasketsovNote Added: 0005851
06-03-2012 13:09vasketsovNote Edited: 0005851bug_revision_view_page.php?bugnote_id=5851#r2957
06-03-2012 13:18zedNote Added: 0005852
06-03-2012 13:27vdemidovNote Added: 0005853
06-03-2012 13:44zedNote Added: 0005854
06-03-2012 13:45zedNote Edited: 0005854bug_revision_view_page.php?bugnote_id=5854#r2959
06-03-2012 13:47vdemidovNote Added: 0005855
06-03-2012 13:59vasketsovNote Added: 0005856
06-03-2012 14:06zedNote Added: 0005857
06-03-2012 14:22vasketsovNote Added: 0005858
06-03-2012 21:02vasketsovFile Added: TileStorage_GE_NEW.rar
06-03-2012 21:04vasketsovNote Added: 0005873
06-03-2012 21:11vasketsovNote Edited: 0005873bug_revision_view_page.php?bugnote_id=5873#r2977
07-03-2012 04:21TolikNote Added: 0005878
07-03-2012 05:16zedNote Added: 0005884
07-03-2012 05:19TolikNote Added: 0005885
07-03-2012 05:35vasketsovNote Added: 0005891
07-03-2012 18:44vasketsovNote Added: 0005950
07-03-2012 18:44vasketsovFile Added: TileStorage_GC_NEW.rar
07-03-2012 18:48vasketsovNote Edited: 0005950bug_revision_view_page.php?bugnote_id=5950#r3007
08-03-2012 08:49zedNote Added: 0005951
08-03-2012 10:17vasketsovNote Added: 0005952
08-03-2012 17:28vasketsovFile Deleted: TileStorage_GC_NEW.rar
08-03-2012 17:30vasketsovFile Added: TileStorage_GC_BETTER.rar
08-03-2012 17:32vasketsovNote Added: 0005959
16-03-2012 08:47TolikNote Added: 0006162
16-03-2012 08:47TolikStatusresolved => assigned
16-03-2012 08:52TolikNote Edited: 0006162bug_revision_view_page.php?bugnote_id=6162#r3073
16-03-2012 09:29vasketsovNote Added: 0006164
16-03-2012 09:51TolikNote Added: 0006167
16-03-2012 11:37zedNote Added: 0006168
16-03-2012 14:03vasketsovFile Deleted: GE_GC_for_SAS.rar
16-03-2012 14:03vasketsovFile Deleted: TileStorage_GE_NEW.rar
16-03-2012 14:03vasketsovFile Deleted: TileStorage_GC_BETTER.rar
16-03-2012 14:04vasketsovFile Added: TileStorage_GC_GE.rar
16-03-2012 14:05vasketsovNote Added: 0006174
16-03-2012 14:06vasketsovStatusassigned => resolved
18-03-2012 14:59TolikNote Added: 0006188
18-03-2012 14:59TolikStatusresolved => assigned
18-03-2012 21:11vdemidovNote Added: 0006194
19-03-2012 04:18TolikNote Added: 0006197
19-03-2012 14:34vasketsovNote Added: 0006205
19-03-2012 14:35vasketsovStatusassigned => resolved
02-04-2012 17:16vasketsovFile Deleted: TileStorage_GC_GE.rar
02-04-2012 17:17vasketsovFile Added: TileStorage_GE_GC_1.0.0.3.rar
02-04-2012 17:18vasketsovTag Attached: google earth
02-04-2012 17:23vasketsovNote Added: 0006368
02-04-2012 17:25vasketsovRelationship addedrelated to 0001253
02-04-2012 20:30vasketsovFile Deleted: TileStorage_GE_GC_1.0.0.3.rar
02-04-2012 20:33vasketsovNote Edited: 0006368bug_revision_view_page.php?bugnote_id=6368#r3163
02-04-2012 20:33vasketsovFile Added: TileStorage_GE_GC_1.0.0.4.rar
02-04-2012 20:48vasketsovNote Edited: 0006368bug_revision_view_page.php?bugnote_id=6368#r3164
03-04-2012 11:49vasketsovNote Edited: 0006368bug_revision_view_page.php?bugnote_id=6368#r3167
03-04-2012 11:49vasketsovFile Added: TileStorage_GC_1.0.0.5.rar
05-04-2012 08:43vasketsovFile Deleted: TileStorage_GC_1.0.0.5.rar
05-04-2012 08:44vasketsovNote Edited: 0006368bug_revision_view_page.php?bugnote_id=6368#r3168
05-04-2012 08:44vasketsovFile Added: TileStorage_GC_1.0.0.6.rar
05-04-2012 08:45vasketsovNote Edited: 0006368bug_revision_view_page.php?bugnote_id=6368#r3169
05-04-2012 08:47vasketsovNote Edited: 0006368bug_revision_view_page.php?bugnote_id=6368#r3170
22-05-2012 05:17TolikRelationship addedrelated to 0001292
22-05-2012 05:18TolikFile Deleted: TileStorage_GE_GC_1.0.0.4.rar
22-05-2012 05:19TolikFile Added: TileStorage_GE_1.0.0.8.rar
22-06-2012 19:38zedFile Added: TileStorage_GC_1.0.0.8.7z
22-06-2012 19:38zedFile Added: TileStorage_GE_1.0.0.9.7z
22-06-2012 19:43zedNote Added: 0007603
22-06-2012 19:47vdemidovNote Added: 0007604
22-06-2012 20:10zedNote Added: 0007606
22-06-2012 20:29zedNote Added: 0007609
23-06-2012 19:06zedNote Added: 0007615
07-07-2012 10:28gpsMaxTag Attached: вики
10-10-2012 11:44TolikStatusresolved => closed

Notes
(0005718)
vasketsov   
28-02-2012 16:08   
>как заставить обновиться карту после смены версии
Общая беда, при смене версии в настройках карты то же самое. Сделаю отдельную багу.
(0005731)
vasketsov   
29-02-2012 00:31   
Сделал выбор версий тайлов GE либо по дате, либо только по номеру снимка.
В разных местах (Земли) по-разному удобнее.
Во всех случаях в скобках указана "версия", которую можно вбить в настройках карты, и будет тот же эффект, что и при выборе конкретного пункта меню.

Менюшку перетащил под ДопОперации и переименовал для работы русификации.

ps. Кэширование дат и версий для закэшированных снимков пока что отключено. Для включения (если вдруг понадобится в статусбаре что-то постоянно отображать) надо раскомментарить в файле u_MapType.pas создание кэша для TTileStorageGE.
(0005740)
Tolik   
29-02-2012 11:36   
(edited on: 29-02-2012 11:41)
Что-то не получается.
120229.5122.
Полазил в ГЕ по историческим снимкам, перебрал все даты в одном регионе.
Закрыл, запустил САС, NameInCache=1.
Вижу кашу из снимков разных лет.
Кликаю правой кнопкой - Version -> там пусто.

P.S. Если NameInCache=0, вижу последние снимки, в остальном всё то же.

(0005744)
vasketsov   
29-02-2012 12:16   
>Version -> там пусто
возможно тайлов нет, а имеющиеся с верхнего уровня растягиваются.
возможно после изменения NameInCache сас не перезапущен.
возможно с определением конкретного номера тайла косяк (там проекции разные).
завтрашняя ночнушка будет с датами снимков в меню "Version" - там будет понятнее.
(0005745)
Tolik   
29-02-2012 12:25   
Перезапущен.
Попробовал на разных зумах - действительно, на одном видно
2010:03:13 (105\51)
(105)
причём обе записи дают один и тот же результат (хороший).
На другом зуме видна ещё 1 версия (опять 2 строчки).
Вообще их там штук 5, но поймать нужную версию очень трудно.
Ладно, посмотрю завтра.
(0005746)
vasketsov   
29-02-2012 12:29   
(edited on: 29-02-2012 12:34)
>обе записи дают один и тот же результат
это бывает когда первое число (номер снимка) в списке уникальное.

>поймать нужную версию очень трудно
ога.

>посмотрю завтра
так я вижу уже результат работы версии с датами в versions.
завтра и далее уже ничего нового в таком случае не будет.

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

приложил только что собранную, кому лениво собирать.

(0005747)
Tolik   
29-02-2012 12:35   
Ну эта приложенная ничем (визуально) не отличается от 5122. Там ведь тоже видны даты.
(0005748)
vasketsov   
29-02-2012 12:39   
Значит оно попало в ночнушку (а то я сильно поздно ночью заливал, могло и не попасть).

(0005749)
Tolik   
29-02-2012 12:39   
(edited on: 29-02-2012 12:42)
Да, полный список версий очень бы помог. Я куда-то ткнув, увидел сразу 3 версии, но не все.
В целом, конечно, уже хорошо: раньше исторические превращались в кашу.
А можно сделать, чтобы NameInCache=1 не надо было выбирать?
В одном контекстном меню и разные исторические версии, и последняя.

Или чтоб не требовалась перезагрузка, когда меняешь Cache folder.

(0005750)
vasketsov   
29-02-2012 12:46   
(edited on: 29-02-2012 12:48)
>чтобы NameInCache=1 не надо было выбирать?
В смысле выбирать "История", "Земля" или "Марс" (Сатурн, Украина и т.п.) вместо цифр, или вообще ничего не указывать?

>и разные исторические версии, и последняя
Ну в принципе там сквозной индекс. Так что если убрать влияние NameInCache - очевидным образом этот параметр перейдёт в версию (будет типа 15\169\1). Шило на мыло. Другое дело что при изменении значения NameInCache хотелось бы адекватной реакции без перезапуска хранилища.

>чтоб не требовалась перезагрузка, когда меняешь Cache folder
Походу в эту сторону буду ковыряться.

(0005754)
Tolik   
29-02-2012 13:05   
(edited on: 29-02-2012 13:07)
> вообще ничего не указывать?
Ну, лучше всего так. При чём тут вообще cache folder...
В контекстном меню или поле Version выбираешь 0 - значит последняя, 15\169\1 - значит историческая, 2 - глобус Украины :)

(0005757)
vasketsov   
29-02-2012 13:18   
>При чём тут вообще cache folder
Не понял вопрос.
С GE есть косяки в том, что NameInCache не физическая папка, а раздел внутри внутреннего "индекса". А папка в общих настройках. А ещё я не знаю как получить весь список возможных NameInCache и описать их значения, и что будет в будущем с этими значениями.

>выбираешь 0 - значит последняя
Пока не знаю как автоматически определять значение NameInCache - это в принципе невозможно.
(0005758)
Tolik   
29-02-2012 13:20   
Тогда достаточно сделать, чтобы переключалось без перезагрузки. Можно и в info.txt написать, куда чего подсовывать.
(0005760)
zed   
29-02-2012 16:35   
(edited on: 29-02-2012 16:38)
>А ещё я не знаю как получить весь список возможных NameInCache и описать их значения, и что будет в будущем с этими значениями.
Я знаю. Список этот лежит в хидере dbCache.dat: TCache_Head.Server: array of TServerRec; // массив серверов (http://starmen.at.tut.by/gecache.htm)
Может принимать значения от 0 до 255, на данный момент максимальное значение 4 (т.е. 5 серверов: 0..4). Сервер 0 почти всегда - Земля, сервер 1 - История, остальные - как карта ляжет. Распарсив хидер dbCache.dat можно однозначно определить номера серверов для Земли и Истории (и, возможно, Небо). Остальные сервера подписаны на национальных языках (в Punycode), поэтому их сдетектить труднее, но можно сделать несколько пресетов, к примеру, для русского, английского и украинского языков.

Типичный список серверов:
0: http://kh.google.com:80/ - Земля
1: http://khmdb.google.com:80/?db=tm - История
2: http://khmdb.google.com:80/?db=sky - Небо
3: http://xn--80axne:80/ - Марс (Punycode)
4: http://xn--80avgx:80/ - Луна (Punycode)

Если это кэш от GE.Local, то всюду, вместо google, будет hoogle.

(0005761)
vasketsov   
29-02-2012 16:44   
(edited on: 29-02-2012 17:11)
Походу надо будет чё-то придумать, чтобы:
а) освободить NameInCache от существующей нагрузки (0-1-2-3) и пихать туда путь до кэша (как сейчас в настройках кэшей), тогда может будет наделать кэшей и разных zmp. Погулял в GE, отлил в сторону кэш - и юзай его потом сколько хочешь (в том числе можно будет пройти по всем существующим кэшам типа GE, но это пока секрет). Ну а если поле пустое - брать по умолчанию из настройки кэшей;
б) в поле с версией (ну или ещё одно поле сделать, тем более что был разговор про язык для карты, так что будет полезно, но это надо думать) сделать возможность:
б1) указать ПОЛНЫЙ ПРОИЗВОЛЬНЫЙ фильтр по любым существующим и возможным будущим полям индекса (судя по всему ничего кроме строки типа 'ver>=15\img=23\srv=1' или более извращённой не остаётся);
б2) указать упрощённое значение фильтра (типа как сейчас).

ps. Сегодня vdemidov помахал шашкой и переписал версионность, покуда не въеду в его новые идеи - придётся подождать.

(0005762)
Tolik   
01-03-2012 07:45   
В сегодняшней ночнушке в меню Version видно сразу много версий, так что делать полный список уже не обязательно.
Но пропали даты :(
(хотя изредка они появляются).
(0005763)
vasketsov   
01-03-2012 08:01   
>В сегодняшней ночнушке
Ждите отстоя пены )))

>видно сразу много версий
Это как повезёт. Зависит от того, насколько целиком прогрузился кэш в GE.

Думаю завтра будет уже ок (если получится - и NameInCache освобожу, вроде разобрался с датами и серверами), но пока без общего списка версий.
(0005766)
vasketsov   
01-03-2012 13:41   
(edited on: 01-03-2012 13:47)
Итак, окончательное понимание, как и каким именно образом фильтровать тайлы для GE, наконец-то обрелось.

В менюшке сейчас отображаются пункты в виде Дата\Версия[Сервер]. Это же является и полной формой строковой записи версии карты для GE. В принципе любой параметр из этих трёх необязательный (пустая строка версии - тоже корректная строка), например, следующие версии будут синтаксически корректными:
2012:10:11[1]
2001:05:05\1
76[1]
[1]
[tm]
[sky]
[супер-пупер-нано-фигня]

Сервер всегда в скобках. Если не число - то происходит попытка понять, есть ли такие известные сервера. Просто по вхождению подстроки в URL (то бишь tm скорее всего смаппится на 1, sky - как получится, а нано-хренотень никуда не замапится). Если сервер не определился - берётся цифирь номер 0. Итого отсюда вывод. Для пустой строки версии будет показываться неисторический сермяжный гугль.

Пока дополнительные стройки с версиями (типа просто [1]) добавлять не стал. Надо будет кому - добавим.

Ещё новость. Теперь если версия уже установлена, и в ней присутствует конкретный сервер (2012:10:11[1] - сервер есть и равен 1, 77[tm] - сервер есть и равен tm, 2001:05:05\1 или [супер-пупер-нано-фигня] или пусто - сервера нет) - то доступные версии будут отображаться ТОЛЬКО для данного сервера. Чтобы получить всю помойку для всех серверов, с глобусами Марса и Украины - соответственно предварительно сбрасываем версию. Сделано специально, чтобы не путались версии в менюшке.

Дата пока что только с двоеточками, так у гугла в exif (точнее там формально не exif, но сути это не меняет, дата там в формате yyyy:mm:dd).

Параметр NameInCache отвязан от фильтрации тайлов, теперь туда можно запихнуть путь до папки с заботливо нагугленным кэшем GE. А если этот параметр пустой - путь берётся из настроек кэшей (откуда и было). Изменения подхватываются БЕЗ перезагрузки саса. Остаётся только беда с необходимостью подвинуть карту мышкой после изменения Version или NameInCache.

ВНИМАНИЕ! Если в NameInCache оставить 1 - работать не будет.

(0005767)
vasketsov   
01-03-2012 13:45   
Совсем забыл написать, что:
а) пока что править описание в zmp не надо, в релизе это не сработает;
б) благодарности дополнительно отправляются zed (за инфу про сервера GE) и vdemidov (за черновую неблагодарную работу по переписыванию версионности в удобоваримый вид).
(0005768)
Tolik   
01-03-2012 14:03   
a) когда всё устаканится, я всё-таки добавлю в info описание, отдельно для релиза, отдельно для ночнушки. Потому что я и сам скоро забуду, куда чего пихать

б) всем куча благодарностей!
(0005770)
zed   
01-03-2012 16:42   
Есть и у меня пара моментов:
а) Всё что касается GE в САСе - грубое нарушение лицензии, причём, оно захардкожено. Я уже давно предлагал это всё как минимум спрятать в dll.
б) Лучше всего не использовать информацию из индекса GE, поскольку клиент любит удалять оттуда информацию по устаревшим тайлам. Т.е. в кэше может быть реально несколько версий данного тайла, а в индексе будет только тот, что последним был загружен. Другими словами, при открытии кэша GE нужно строить свой индекс и юзать именно его, если уж хочется получить полную версионность тайлов.
(0005771)
vasketsov   
01-03-2012 17:08   
>спрятать в dll
ну значит спрячем
(0005774)
Tolik   
02-03-2012 05:01   
Интересно, в одном месте кликнул Version и увидел:
465[0]
431[0]
Это значит, в кэше 2 разные НЕисторические версии? А для них дата не видна?
(0005775)
Tolik   
02-03-2012 05:04   
(edited on: 02-03-2012 05:12)
А в другом месте
401[0]
2009:10:01\465[0]
2009:10:01\401[0]

Что это значит? Желательно скрывать дубли (401[0]).

P.S. Да, оказывается, разные версии есть и у неисторических, и на экране может быть каша, если не выбрать одну из них!
В данном случае одна из версий более светлая, а дата снимков, действительно, одна и та же.

(0005776)
Tolik   
02-03-2012 05:07   
> Теперь если версия уже установлена... то доступные версии будут отображаться ТОЛЬКО для данного сервера.

Серверы [0] и [1] лучше показывать в одном списке. Так-то всё работает хорошо, но слишком неочевидно, что надо нажимать reset.
(0005777)
vasketsov   
02-03-2012 07:15   
>А для них дата не видна?
Там дата снимка в 3-х местах теоретически может быть (данные индекса, данные тайла и сам тайл). Возможно, что где-то этой информации нет. А возможно нигде нет.

>Серверы [0] и [1] лучше показывать в одном списке
Как бы там может быть и [2] и [3], а [1] ничем от них не отличается с точки зрения алгоритма. На самом деле даже [0] ничем не отличается, просто это самое простое значение по умолчанию.

>не использовать информацию из индекса GE, поскольку клиент любит удалять оттуда информацию
Сравнение размеров файлов и разные алгоритмы парсинга очевидно подсказывают, что работа без индекса (как и постороение индекса) будут занимать несравнимо более длительное время, чем сейчас. Двухгиговый файл пройти тоже не вопрос пары секунд. Так что в рамках концепции отделения мух от котлет надо использовать (или написать, или ждать что кто-то напишет) тулзу для перегенерации индекса по файлу с данными (коли там тупо в файле array of).
(0005793)
vasketsov   
04-03-2012 10:14   
>Всё что касается GE в САСе - грубое нарушение лицензии
Я так понимаю, BitmapTileSaveLoad/u_BitmapTileGELoader.pas и BitmapTileSaveLoad/u_BitmapTileGEDXTextureLoader.pas тоже должны в итоге умереть? Ибо отдаёт DLL уже 'image/jpeg', а не какой-то там 'application/vnd.google-earth.tile-image'.
(0005794)
zed   
04-03-2012 10:22   
Ага.
(0005795)
vdemidov   
04-03-2012 10:52   
ИМХО не умереть, а поставляться той же dll, которая и доступ к кэшу будет организовывать. Сейчас например можно экспортнуть чем-угодно тайлы GE в отдельные файлы и просматривать их при помощи SAS.Планеты.
(0005796)
zed   
04-03-2012 11:07   
>доступ к кэшу
Не к кэшу, а к тайлам в jpeg формате. Поэтому "поставлять" дополнительные методы-конверторы просто нет смысла.
(0005818)
zed   
06-03-2012 04:51   
Работает! Единственное, хотелось бы, чтобы картинка автоматически обновлялась при смене версии (по клику).
(0005820)
Tolik   
06-03-2012 05:02   
(edited on: 06-03-2012 05:12)
Я правильно понял, что GE и GC выпилили из открытого кода и засунули в DLL?
Теперь надо добавить их в дистрибутив?

(0005821)
Tolik   
06-03-2012 05:09   
Работает, но плохо.
5154 показывает раза в 3 меньше тайлов из истории, чем версия 5140.
См. картинки (сплющены после склеивания).
(0005822)
zed   
06-03-2012 05:13   
(edited on: 06-03-2012 05:18)
Это из какого кэша? Переключение на смежные даты не помогает? Оно ведь может быть что визуально снимок вроде один, а даты у соседних тайлов буду разные.

(0005823)
Tolik   
06-03-2012 05:18   
Это из GE, исторические (зимние).

Кстати, в GeoCacherGE.zmp непонятно написано:
"Укажите в настройках программы (вкладка Кэш) путь к корневой папе GeoCacher-а"

В каком именно поле его надо указать? Там нет поля GC.
(0005824)
zed   
06-03-2012 05:20   
>Там нет поля GC.
Ещё нет. Пока только в ini - там же, где и остальные пути.
(0005825)
Tolik   
06-03-2012 05:24   
> Переключение на смежные даты не помогает?
Нет, в кэше GE точно есть тайлы с одной датой и версией, их хорошо видно в САС 5140.
При переключении на другие даты тоже показывает не все тайлы, а только некоторые.
(0005826)
zed   
06-03-2012 05:38   
>без индексов и работает местами медленно
А если сделать не один zmp, а по числу серверов? А то естественно, пока он прошерстит все сервера, да все версии. Но нафиг нам сразу и Луна и Марс, когда мы шаримся по Земле?
(0005827)
Tolik   
06-03-2012 06:03   
Если Луна и Марс нафиг не нужна, они в кэше и не появятся.
Я вот, например, ни разу туда не лазил :)
(0005828)
zed   
06-03-2012 06:07   
"нафиг не нужна ... когда мы шаримся по Земле", а когда мы будем шариться по Луне, нам нафиг не нужны будут Марс и Земля в списке версий.
(0005831)
Tolik   
06-03-2012 08:29   
> возможно как раз беда индекса GE, на которую намекал zed (что GE любит чистить без спросу свой индекс).

Это разве объясняет, почему в версии 5140 показывает всё (или гораздо больше)? Не показывало когда-то там, а сейчас показывает (не поленился распаковать 2 версии exe в одну папку и запускать по очереди).
(0005833)
vasketsov   
06-03-2012 08:46   
Хм. Ну значит косяк, если по одному кэшу GE разные результаты ДО и ПОСЛЕ выделения GE в DLL. Осталось понять в чём именно. Можно координаты, зум и список версий в обеих версиях программ (на показываемом тайле и на непоказываемом)?
(0005834)
Tolik   
06-03-2012 09:21   
Приаттачил ещё 2 картинки, этого достаточно?
При клике на левый и правый тайл список версий, как правило, такой же, хотя в новой версии иногда показывает Empty при клике на правом.
(0005835)
vasketsov   
06-03-2012 10:12   
(edited on: 06-03-2012 10:41)
>иногда показывает
Не понял, там бывает что для одного и того же места (координаты+зум) показывает разное на одном и том же кэше? Вроде ж алгоритм детерминированный, должен выдавать на одной версии одно и то же всегда.

>этого достаточно
Ну попробую понять в чём дело. А вообще буквально хотелось бы понять, новая версия вообще не видит эти тайлы, или же видит при перечислении версий, но не хочет отображать. А для этого и просил список версий на отсутствующем тайле.

зы. Вообще выглядит как или слой какой перекрыл тайлы, или тайлов нет и с верхних уровней не отображаются. Прогрузил это место - ошибку воспроизвести не смог. Значит какая-толокальная особенность локального кэша.
Сейчас соберу и выложу DLL без одной дополнительной проверки корректности "распаковки" картинки (которой не было в старой версии) - если заработает - значит всё крайне грустно, и тайлы гадятся внутри кэша.

(0005836)
Tolik   
06-03-2012 10:53   
> Не понял, там бывает что для одного и того же места (координаты+зум) показывает разное на одном и том же кэше?

вот казалось бы кликаю на один и тот же тайл (границы же видны, хотя они и растянуты), точнее на белый квадрат справа от видимого. Чуть левее кликну - выводится тот же список версий, чуть правее - пусто.
(0005837)
Tolik   
06-03-2012 10:55   
(edited on: 06-03-2012 10:59)
Приложил ещё 2 картинки, где кликал чуть правее.
В этом месте обе программы показывают меньше версий.

Особенность этого кэша, может быть, в том, что некоторые тайлы скачаны давно, а некоторые только что. Поэтому воспроизвести трудно.

(0005838)
Tolik   
06-03-2012 11:01   
TileStorage_GE_nocheck работает точно так же, как и TileStorage_GE
(0005839)
vasketsov   
06-03-2012 11:03   
Какой размер кэша?
(0005840)
Tolik   
06-03-2012 11:04   
256 МБ

dbCache1.dat нужен? Ещё 128 МБ
(0005842)
zed   
06-03-2012 11:19   
dbCache1.dat - кэш от браузерного плагина.
(0005846)
Tolik   
06-03-2012 11:38   
2010:03:13[1] - показывает то же
(0005847)
Tolik   
06-03-2012 11:49   
> DXT1, их обработка была отдельно и сейчас закомментирована
Запихнуть в тот же DLL?
Тут пишут, что с опенсорсом она не дружит: http://en.wikipedia.org/wiki/S3_Texture_Compression
(0005848)
vdemidov   
06-03-2012 12:03   
> Тут пишут, что с опенсорсом она не дружит
Патенты перпендикулярны к опенсорсу. В большинстве стран патенты на ПО и математические алгоритмы недействительны. А продавть САС.Планету в США мы не собираемся.
(0005849)
vasketsov   
06-03-2012 12:32   
(edited on: 06-03-2012 12:33)
Тут как бы главное понять (по скорости работы и по размеру кэша в памяти для "картинок") и выбрать:
1. Возвращать из DLL уже jpeg (соответственно распаковывать в DLL)?
2. Возвращать из DLL (соответственно распаковывать в DLL) нечто другое общедоступное (и мYдохаться с множеством ContentType-ов)?
3. Возвращать из DLL прямо DXT1 и опять же наступить на лишние грабли множества ContentType-ов, зато распаковка одна где и была по требованию.
зы. Сразу выбрать не мог - потому и закомментировал, а потом и забыл об этом вовсе (((

(0005850)
zed   
06-03-2012 12:36   
Я за: Возвращать из DLL уже jpeg.
И на самом деле, гугловская текстура из кэша, это нечто очень похожее на DXT1, но не DXT1.
(0005851)
vasketsov   
06-03-2012 12:46   
(edited on: 06-03-2012 13:09)
>Возвращать из DLL уже jpeg
То есть конвертить картинку в jpeg со своими потерями ещё в DLL? Хотелось бы лишних потерь избежать. В идеале конечно показать прямо из DXT1, пусть и не совсем стандартного. Ведь а) заголовок его отличим от jpeg, и б) теоретически его может не только GE использовать.

(0005852)
zed   
06-03-2012 13:18   
>теоретически его может не только GE использовать.
Нет. Только GE - я ж говорю, там свой формат. Если уж так сильно беспокоят потери, то тогда отдавай в BMP, ну или можешь в человеческий DXT1 конвертировать.

Лично я бы с "потерями" на заморачивался. Кому нужна супер качественная картинка - перекачают с гугл мапс.
(0005853)
vdemidov   
06-03-2012 13:27   
А я за то что бы возвращать то что там есть. Если есть jpg, то jpg, если GE-шный DXT1, то DXT1, а уже хост-программа будет решать что делать.
(0005854)
zed   
06-03-2012 13:44   
(edited on: 06-03-2012 13:45)
>если GE-шный DXT1, то DXT1
Так смысл dll в том, чтобы спрятать _весь_ отреверсенный код, касающийся GE. Если что-то прятать, а что-то нет, то и смысла вообще нету в dll.

(0005855)
vdemidov   
06-03-2012 13:47   
А в чем противоречие? Просто для гугловского DXT1 ридер должна та же длл поставлять.
(0005856)
vasketsov   
06-03-2012 13:59   
>Просто для гугловского DXT1 ридер должна та же длл поставлять
Ну в общем да, к этому же склоняюсь. Отдам что есть, а потом хост сам решает, в файл ли вывалить, показать ли хитро, или либу попросить выдать jpeg.
(0005857)
zed   
06-03-2012 14:06   
>Отдам что есть, а потом хост сам решает
Правильно, чего уж там. А ещё лучше закриптованный вариант хосту отдавать. Чтоб уж действительно "как есть". А он пускай сам решает...

Имхо, это всё лишние телодвижения и нефиг хосту вообще знать из каких источников и в каком формате мы получаем снимки.
(0005858)
vasketsov   
06-03-2012 14:22   
>нефиг хосту вообще знать
А он и не будет ничего знать.
Просто появится на выбор 2 варианта: конвертнуть сразу с потерями времени и качества, или сохранить и конвернуть при показе быстро и красиво как было.

>закриптованный вариант
Дешифрование там безусловное, программное и один раз, тут большой разницы нет. А вот если будет специальный модуль (программный или аппаратный) для дешифрования - тогда разница и возникнет, и именно в пользу "отдать что есть, а хост уже разберётся".
(0005873)
vasketsov   
06-03-2012 21:04   
(edited on: 06-03-2012 21:11)
Новая версия либы для GE лежит в TileStorage_GE_NEW.rar
Пароль тот же.
По идее должна работать и с сегодняшней и с завтрашней версиями саса.
Если не будет косяков с GE - останется только докрутить использование индекса для кэша GC.

зы. Впрочем если кого-то вдруг будет напрягать скорость конвертации DXT1 в JPEG или размер DLL - это легко объяснимо, я конвертацию сделал по-тупому через стандартные TBitmap и TJpegImage. Если кто-то напишет для libjpeg как битмапку (TMemoryStream) слить в jpeg в TMemoryStream - заменю. У меня чего-то озарения не случилось, а долго сидеть над этим было некогда.

(0005878)
Tolik   
07-03-2012 04:21   
Работает!
(120307.5163 + TileStorage_GE_NEW.rar)

Пора включить dll в ночнушку, а то посыплются вопросы, почему не работает.
(0005884)
zed   
07-03-2012 05:16   
>Если кто-то напишет для libjpeg как битмапку (TMemoryStream) слить в jpeg в TMemoryStream - заменю.
Так в u_ThreadMapCombineJPG.pas есть же хороший пример. Сливает из стрима в стрим:

my_dest_mgr = record
  pub: jpeg_destination_mgr;
  DestStream: TStream;
  DestBuffer: array [1..4096] of byte;
end;

"слив" jpeg-буфера в стрим происходит в
function empty_output_buffer(cinfo: j_compress_ptr): boolean;

Если озарения не случится, могу написать и отдельный класс-конвертер.
(0005885)
Tolik   
07-03-2012 05:19   
Вообще-то тормозов не заметно. Если только ради искусства :)
(0005891)
vasketsov   
07-03-2012 05:35   
>Если только ради искусства
Ну тогда сделаю может как будет готова реализация для GC. Чтобы меньше телодвижений было, и сразу потом обе DLL заменить чтобы.
(0005950)
vasketsov   
07-03-2012 18:44   
(edited on: 07-03-2012 18:48)
Предпоследняя версия либы для GC приаттачена.
Но походу для GC надо оставлять одни даты, слишком часто версия меняется от тайла к тайлу даже при переходе к соседнему тайлу. Ну или и то и другое делать (дата\версия[сервер] и дата[сервер]).

(0005951)
zed   
08-03-2012 08:49   
А как насчёт добавить подменю для каждого сервера в списке версий, и соответственно, рассортировать версии по серверам?
(0005952)
vasketsov   
08-03-2012 10:17   
ДА можно конечно, но это надо уже хост править, а не DLL, а там пока vdemidov параллельную верку не "закроет" - рисковано соваться.
(0005959)
vasketsov   
08-03-2012 17:32   
В архиве TileStorage_GC_BETTER.
Изменения:
1. В версиях добавлены также версии без версий ))))).
2. Допёр когда надо для историческиого режима показывать неисторические тайлы.
(0006162)
Tolik   
16-03-2012 08:47   
(edited on: 16-03-2012 08:52)
Возвращаю в assigned в качестве напоминалки:
надо включить dll в ночнушку.

Вот народ уже спрашивает в форуме, почему GE сломался.
А посылать его сюда, читать все 79 комментов, искать среди них нужный архив пароль к нему - это негуманно.

(0006164)
vasketsov   
16-03-2012 09:29   
Ну в общем-то конечно согласен что пора закрыть тему ))
Сегодня выложу архив с DLL тут. Но пока что руки не дошли до конвертации в жпег. После сделаю отдельную тему по недоделкам в соответствии с тем что получилось и не получилось.
(0006167)
Tolik   
16-03-2012 09:51   
Не, надо не тут, а в архиве с ночнушкой (это к zed, наверно).

А рефакторинг - да, пусть будет в отдельной теме. Сейчас уже хорошо работает. Кстати, спасибо, именно сейчас понадобился просмотр исторических снимков, т.к. появилось много новых.
(0006168)
zed   
16-03-2012 11:37   
dll-ки нужно положить сюда: https://bitbucket.org/vdemidov/sas.planet
Ночнушка их подхватит.
(0006174)
vasketsov   
16-03-2012 14:05   
Приаттачил TileStorage_GC_GE.rar сюда, старьё отсюда поудалял.
Не понял, как туда их засунуть без клонирования репозитория и запуливания DLL вручную из локальной копии.
За сим тему закрываю.
(0006188)
Tolik   
18-03-2012 14:59   
Извиняйте, но dll в ночнушке до сих пор нет => ничего не работает, проблема не решена.
(0006194)
vdemidov   
18-03-2012 21:11   
Извините, но я против добавления нарушающих законы dll в дистрибутив.
(0006197)
Tolik   
19-03-2012 04:18   
Это аргумент.
Тогда что писать юзерам? Зайдите в багтрекер и скачайте dll? Или что мол пользуйтесь поиском, нефиг задавать глупые вопросы?
(0006205)
vasketsov   
19-03-2012 14:34   
>я против добавления нарушающих законы dll в дистрибутив
я тоже, кроме того не вижу смысла этого делать вообще.
просто темы с приаттаченными или выложенными на файлопомойку либами будет более чем достаточно.
(0006368)
vasketsov   
02-04-2012 17:23   
(edited on: 05-04-2012 08:47)
В версии TileStorage_GE_GC_1.0.0.4.rar:
1. Построение карты заполнения для GE возможно через битовую карту тайлов по диапазону (диапазон = 1 тайл текущего зума). Для GC пока не сделано, а может и не пока.
2. Для оптимизации чтения из файлов всюду (ну кроме чтения ini для GC) замена Stream-ов на NtReadFile. Она позволяет параллельно читать по одному hFile любой участок по любому смещению.
3. Устранил дурацкую ошибку в версии 1.0.0.3, из-за которой мог возвращаться из DLL неверный результат операции построения битовой карты тайлов (ну то есть на самом деле не присваивался TRUE), и в этом случае работал старый потайловый метод построения карты заполнения (то есть работало, но как раньше неоптимально).

В версии TileStorage_GC_1.0.0.5.rar (только GC):
1. Ускорено получение тайлов и построение карты заполнения. Карта по-прежнему строится не по битовой маске тайлов в диапазоне, а по-старинке потайлово. Но быстрее.

В версии TileStorage_GC_1.0.0.6.rar (только GC):
1. Карта заполнения строится по битовой маске тайлов в диапазоне.
2. Поддержка как кэша GC по умолчанию, так и кэша GC на основе гугло-QuadKey. Тема на форуме про GC:
http://sasgis.org/forum/viewtopic.php?f=3&t=228&start=130#p27580

(0007603)
zed   
22-06-2012 19:43   
TileStorage_GC_1.0.0.8 и TileStorage_GE_1.0.0.9:
- для конвертирования DXT в JPEG используется libjpeg (уменьшение размеров dll + возможно небольшое увеличение скорости конвертирования).
(0007604)
vdemidov   
22-06-2012 19:47   
Зачем вам это конвертирование вообще понадобилось? Оставьте декодер DTX просто в САС и не морочьте голову.
(0007606)
zed   
22-06-2012 20:10   
>Оставьте декодер DTX
Оставить "гугло-DXT" -> JPEG в САСе и порушить лицензионную чистоту?
(0007609)
zed   
22-06-2012 20:29   
Кстати говоря:
>vdemidov
>19-03-2012 00:11
>Извините, но я против добавления нарушающих законы dll в дистрибутив.
В дистрибутиве САС нарушают законы dll-ки от ECW и достаточно много zmp, которые позволяют качать карты (Google, Yandex и далее по списку). Так что, пара dll тут погоды не сделает, а вот неудобства доставляет.

Показательно: MOBAC - Where are all the map sources gone? http://sourceforge.net/apps/phpbb/mobac/viewtopic.php?f=1&t=1&start=0
(0007615)
zed   
23-06-2012 19:06   
Написал инструкцию для новичков: http://starmen.at.tut.by/sasplanet_ge_howto.htm