SASGIS

Веб-картография и навигация


View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0001873SACS.Планета[All Projects] Хотелкаpublic01-04-2013 05:4009-08-2013 15:13
Reportervasketsov 
Assigned Tovasketsov 
PrioritynormalSeverityminorReproducibilityN/A
StatusclosedResolutionfixed 
PlatformWindowsOSVistaOS VersionUltimate
Product Version 
Target VersionFixed in Version130803 
Summary0001873: При загрузке тайлов проверять идентичность предыдущей версии при сохранении
DescriptionЕсли хранилище версионное и позволяет сравнение версий, в настройку закачки и удаления можно добавить проверку (соответственно проверки будут по-разному) на идентичность тайла текущей версии и тайла предыдущей версии.

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

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

Здесь под предыдущей версией понимается версия, меньшая текущей (с учётом алгоритма сравнимости версий, для гугла это int, для роскосмоса или dg версии несравнимы) для каждого конкретного тайла, ибо версия тайла локальна.

Цель доработки проста: в таком режиме после смены версии в хранилище закачается только то, что реально обновилось, а не снова вся область (z11 для яндекса или z15 для bing). Ну а удаление позволит подчистить уже накаченное. И тогда в режиме "если нет версии, показывать предыдущую" хранилище при сохранении полноты информации будет максимально компактным. А в режиме "показывать только текущую версию" картинка (и карта заполнения тоже) будет соответствовать реально обновлённому.
TagsNo tags attached.
Attached Files

- Relationships

-  Notes
(0010959)
zed (manager)
01-04-2013 07:30

Нужная вещь.

>с учётом алгоритма сравнимости версий, для гугла это int, для роскосмоса или dg версии несравнимы
А как насчёт сравнения по дате? Очевидно, что самый свежий тайл должен иметь самую новую версию.

>И тогда в режиме "если нет версии, показывать предыдущую"
>А в режиме "показывать только текущую версию"
А где эти режимы переключаются? И как они в хранилище пропихиваются?
(0010960)
vasketsov (manager)
01-04-2013 13:12

>А где эти режимы переключаются?
А это пока что есть только в кэша в СУБД (в DLL). Соответственно как руки дойдут - перетащу в EXE. Переключаются по ПКМ в настройках хранилища (пункт внизу менюшки).
Ибо пока версионное было только оно одно.

>И как они в хранилище пропихиваются?
Пока никак - они только в хранилище и живут. Хотя для СУБД я планировал поля под это дело, и они зарезервированные так и болтаются сейчас. Надо будет только придумать, чтобы DLL корректно работала с обоими вариантами. Или наоборот, сделать как и для СУБД, чтобы об этих режимах знало только хранилище.

Для SQLite отдельной настройки сравнимости версий не будет, там поля нетипизированы, соответственно для гугла 125<126, для bing 861<1191, а если не int - то будет сравниваться как строка (строки после int) - соответственно для яндекса будет 3.35.0<3.4.1, но я готов на это пойти, чтобы не усложнять хранилище SQLite. Так что для SQLite оно как бы будет, но будет немного ограничено.

Для файловых кэщей в режиме VersionInCache или придётся забить, или как с перечислением версий - ходить по подпапкам, если не сильно тормозно это будет.

>самый свежий тайл должен иметь самую новую версию
Это не всегда так. Говорят, снимки с сервисов воруют )))
А на самом деле конечно для перечисленных сервисов возможен доступ по иденификатору версии и к более старым снимкам (например на dg могут выложить более старый снимок, чем уже есть в этом месте), так что конкретно для них при выкачивании снимка дата не нужна (дата для роскосмоса по сути и есть версия).
(0011017)
vasketsov (manager)
05-04-2013 11:10

В качестве подготовки к реализации пописал фабрики версий, сделал их как singletonы и пропихнул чтобы не плодились и не размножались. Заодно в меню Version по ПКМ появился пункт Show previous Version (правда работающий пока только для SQLite).
(0011027)
vasketsov (manager)
05-04-2013 20:53

Идея модифицирована. Буду делать не через режим закачки, а через свойства хранилища. Уж больно надо сильно извратиться технически, чтобы на уровне закачки этим рулить.

Для SQLite для скачки сделано, остальное (SQLite удаление и СУБД оба режима) - пока нет.

В форме редактирования свойств карты поля скачки повыкидывал на отдельную закладку. И добавил 2 галочки.
Первая "Show previous Version" работает при показе тайла из хранилища и при построении карты заполнения.
Вторая "Don't keep if same as previous Version" работает при скачке: если есть последняя предыдущая версия (относительно Version) с таким же размером тайла, сохраняемый тайл вставляться или обновляться в реальности не будет. В окне прогресса закачки факт несохранения никак не отображается, то есть цифры бегут как будто бы тайл сохранился.
(0011048)
vasketsov (manager)
08-04-2013 18:25

Доделал. И удаление тоже. И для СУБД тоже. Надо качнуть dll тут:
https://bitbucket.org/vasketsov/tilestorage_dbms/downloads
Так как на всех СУБД проверить возможности не было, пока не закрываю, путь до конца недели поживёт.

- Users who viewed this issue
User List Anonymous (1533x)
Total Views 1533
Last View 19-04-2024 02:13

- Issue History
Date Modified Username Field Change
01-04-2013 05:40 vasketsov New Issue
01-04-2013 07:30 zed Note Added: 0010959
01-04-2013 13:12 vasketsov Note Added: 0010960
05-04-2013 11:10 vasketsov Note Added: 0011017
05-04-2013 20:47 vasketsov Summary При загрузке и удалении тайлов (по выделенной области) проверять идентичность предыдущей версии => При загрузке тайлов проверять идентичность предыдущей версии при сохранении
05-04-2013 20:53 vasketsov Note Added: 0011027
05-04-2013 20:54 vasketsov Assigned To => vasketsov
05-04-2013 20:54 vasketsov Status new => assigned
08-04-2013 18:25 vasketsov Note Added: 0011048
16-04-2013 20:03 vasketsov Status assigned => resolved
16-04-2013 20:03 vasketsov Fixed in Version => .Nightly
16-04-2013 20:03 vasketsov Resolution open => fixed
09-08-2013 14:59 vasketsov Fixed in Version .Nightly => 130803
09-08-2013 15:13 vasketsov Status resolved => closed



Copyright © 2007 - 2024 SAS.Planet Team