Anonymous | Login | Signup for a new account | 19-04-24 02:13 UTC |
All Projects | SAS.Планета | Домен, сайт, форум, багтрекер | Доработка карты (ZMP) | Переводы и локализации | Прочее |
My View | View Issues | Change Log | Roadmap | Search |
View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
0001873 | SACS.Планета | [All Projects] Хотелка | public | 01-04-2013 05:40 | 09-08-2013 15:13 | ||||
Reporter | vasketsov | ||||||||
Assigned To | vasketsov | ||||||||
Priority | normal | Severity | minor | Reproducibility | N/A | ||||
Status | closed | Resolution | fixed | ||||||
Platform | Windows | OS | Vista | OS Version | Ultimate | ||||
Product Version | |||||||||
Target Version | Fixed in Version | 130803 | |||||||
Summary | 0001873: При загрузке тайлов проверять идентичность предыдущей версии при сохранении | ||||||||
Description | Если хранилище версионное и позволяет сравнение версий, в настройку закачки и удаления можно добавить проверку (соответственно проверки будут по-разному) на идентичность тайла текущей версии и тайла предыдущей версии. При сохранении тайла оптимальнее всего такую проверку делать внутри SaveTile (то есть надо, чтобы признак закачки пролетал в хранилище как аргумент), тогда не надо будет создавать тайл для проверки. И вот если такой режим, и если есть тайл предыдущей версии (для этого требуется сравнимость версий), и если он такой же как записываемый - надо ровным счётом ничего не делать, можно даже в кэш памяти не сохранять скачанный тайл. При удалении тайла удалять только такие тайлы, для которых существуют точно такие же тайлы предыдущей версии (относительно текущей). Здесь под предыдущей версией понимается версия, меньшая текущей (с учётом алгоритма сравнимости версий, для гугла это int, для роскосмоса или dg версии несравнимы) для каждого конкретного тайла, ибо версия тайла локальна. Цель доработки проста: в таком режиме после смены версии в хранилище закачается только то, что реально обновилось, а не снова вся область (z11 для яндекса или z15 для bing). Ну а удаление позволит подчистить уже накаченное. И тогда в режиме "если нет версии, показывать предыдущую" хранилище при сохранении полноты информации будет максимально компактным. А в режиме "показывать только текущую версию" картинка (и карта заполнения тоже) будет соответствовать реально обновлённому. | ||||||||
Tags | No tags attached. | ||||||||
Attached Files | |||||||||
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 Так как на всех СУБД проверить возможности не было, пока не закрываю, путь до конца недели поживёт. |
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 |
My View | View Issues | Change Log | Roadmap | Search |
Copyright © 2007 - 2024 SAS.Planet Team |