Anonymous | Login | Signup for a new account | 21-11-24 12:42 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 | ||||
0001285 | SAS.Планета | [All Projects] Баг | public | 03-05-2012 13:05 | 10-10-2012 11:47 | ||||
Reporter | Dima2000 | ||||||||
Assigned To | Garl | ||||||||
Priority | normal | Severity | minor | Reproducibility | always | ||||
Status | closed | Resolution | fixed | ||||||
Platform | Windows | OS | XP | OS Version | Professional SP3 | ||||
Product Version | .Nightly | ||||||||
Target Version | 120808 | Fixed in Version | 120808 | ||||||
Summary | 0001285: Небольшой глюк в отображении при экспорте в формат SAS4WinCE | ||||||||
Description | Рановато закрыли http://sasgis.org/mantis/view.php?id=1282 В процессе экспорта, пока не записано в файл данных ни одного тайла (ну вот нету тайлов в кэше SAS или не приняты классом экспорта), номер файла данных =-1 и отображается как (.d0-1), что есть некорректно. Такой файл данных классом разумеется не создаётся, т.е. глюк лишь в отображении. Надо проверять DataNum >= 0 и только в этом случае отображать скобку с номером. Или если DataNum < 0, то отображать '(--)'. | ||||||||
Tags | SAS4WinCE | ||||||||
Attached Files | |||||||||
Notes | |
(0006655) Papazol (reporter) 03-05-2012 13:25 |
Ничего, это исправится. Поскольку я не успел в той теме поблагодарить всех принявших участие в этом непростом деле, сделаю это сейчас. Спасибо вам! |
(0006656) Garl (manager) 03-05-2012 19:00 |
ага сейчас профиксим. и низкий поклон за то что разбудили желания и дали пинок к созданию очень нужного и полезного дела. |
(0006657) Dima2000 (developer) 03-05-2012 20:06 |
На форуме у v_max уже обнаружили экспорт в свежей ночнушке и безумно рады. :) Я то надеялся потестить втихаря недельку... От меня огромное спасибо всем разработчикам (и Garl особенно!) за помощь в подгонке кода к стандартам Планеты. И конечно за встраивание в Планету! |
(0006658) Dima2000 (developer) 03-05-2012 20:18 edited on: 03-05-2012 20:36 |
Garl, я бы предложил следующий код, вместо вашего в репо: VExt := '(.d' + inttostr(VSAS4WinCE.DataNum) + ')'; if VSAS4WinCE.DataNum < 10 then VExt := '(.d0' + inttostr(VSAS4WinCE.DataNum) + ')'; if VSAS4WinCE.DataNum < 0 then VExt := ''; ProgressInfo.SecondLine := SAS_STR_Processed + ' ' + inttostr(VTilesProcessed) + ' '+VExt; Ваш будет сразу выводить (.d00), а имхо лучше не показывать скобку вообще пока файл не создан. |
(0006659) Garl (manager) 04-05-2012 02:57 |
та можно и так просто я даже не успеваю увидеть когда оно так делает. с другой стороны - идёт создание первого тома (d00) и по логике мы правы отображая "d00" |
(0006660) Garl (manager) 04-05-2012 05:20 |
как лучше перевести обозначить "Записывать служебную информацию" "Дополнять информацией для восстановления" "Записывать информацию о тайлах" или ещё варианты ... |
(0006661) Dima2000 (developer) 04-05-2012 10:10 |
>просто я даже не успеваю увидеть когда оно так делает. Выделите облсть, где слева много отсутствующих тайлов (к примеру включите лишь 24-й зум) - и пока не найдётся первый присутствующий тайл увидите. >как лучше перевести обозначить Я за "Save recovery info" / "Записывать информацию для восстановления". У меня вот такая мысля пришла. Учитывая что есть распаковщик от v_max и будет мой (с поддержкой этой самой info), получается достаточно удобно обмениваться кусками кэша в этом формате. Хотел спросить о нужности добавления ещё размеров в список, но оказывается в ночнушке можно вводить размер руками. Класс, ничего делать не надо, уже всё есть. :) |
(0006662) Dima2000 (developer) 04-05-2012 10:19 edited on: 04-05-2012 10:20 |
У меня замечание, по исходнику, в проге живьём пока не видел. Сравните две строки из u_ThreadExportToCE.pas: ProgressInfo.SecondLine := SAS_STR_Zoom + ': ' + inttostr(Vzoom) + ' ' + SAS_STR_Tiles + ': ' + inttostr(VTilesToProcess); и ProgressInfo.SecondLine := SAS_STR_Processed + ' ' + inttostr(VTilesProcessed) + VExt; Вам не кажется нелогичным показывать в одном месте по разному? Добавка зума может и хорошо, но тогда и во второе место тоже надо, идентично первому. Или это так и задумано? Тогда извините, надо глянуть как оно в работе выглядит. |
(0006663) Dima2000 (developer) 04-05-2012 10:39 edited on: 04-05-2012 10:42 |
Ещё, давайте наконец разберёмся с расчётом VMaxSize в u_ExportProviderCE.pas. Что его можно вводить руками это прекрасно, но вот что он уменьшается на 1МБ уже совсем не прекрасно, пока минимум был 256МБ это было несущественно, но теперь, давайте уж сделаем корректно. Я предлагаю так: VMaxSize := Strtointdef(FFrame.cbbMaxVolSize.Text, 0); if (VMaxSize < 1) or (VMaxSize > 2047) then raise {Исключение подставьте какое нужно, с указанием недопустимости ввода кривых чисел}; Да, я специально отказался от регэкспа, любой нецифровой символ должен приводить к ошибке (raise), а не вырезать из текста лишь цифры. Указание пользователем множителя (КБ, МБ, ГБ, ТБ) всё равно ведь не поддерживается да и не нужно. Перевести же в мегабайты можно и в момент вызова конструктора в u_ThreadExportToCE.pas: VSAS4WinCE := TSAS4WinCE.Create(FTargetFile, FMaxSize*1048576, FComment, FRecoverInfo); Или тоже самое в u_ExportProviderCE.pas: TThreadExportToCE.Create(..., VMaxSize*1048576, ...); PS. И убрать из строки ввода размера символы Mb, они есть над строкой в её названии "Max volume size, Mb", считаю этого достаточно. А в поле вводить лишь чистые цифры. |
(0006664) Garl (manager) 04-05-2012 10:41 |
кстати да. |
(0006665) Garl (manager) 04-05-2012 11:22 |
перевел ввод Мб из ComboBox в SpinEdit. (-1 строка кода и исключение ) |
(0006666) Dima2000 (developer) 04-05-2012 11:44 |
Сделайте Save recovery info изначально включенной. Говорил же об этом выше. |
(0006674) Dima2000 (developer) 04-05-2012 22:23 |
Вижу, сделали, отлично. Теперь бы поглядеть на это в ночнушке... И ещё. Не даёт мне покоя объявление типов в интерфейсе юнита, неправильно это, вдруг где пересечётся с остальной Планетой? Переместите объявление трёх типов данных в private класса, а? Я даю и разрешение и даже прошу. Сам я это проверить не могу, моя дельфи такое не компилит. От такого перемещения ничего испортиться не должно. |
(0006676) Tolik (manager) 05-05-2012 05:58 |
> Учитывая что есть распаковщик от v_max и будет мой (с поддержкой этой самой info), получается достаточно удобно обмениваться кусками кэша в этом формате. А что за распаковщик? Ссылку киньте, пожалуйста. А может, добавить поддержку этого кэша прямо в САС.Планету? Хотя бы read-only, если полноценный трудно сделать, было бы ещё удобнее. В сегодняшней ночнушке (120505.5493) всё исправлено. |
(0006677) Garl (manager) 05-05-2012 06:01 |
с полноценной поддержкой кэша думаю будут сложности ибо он имеет ограницения на размер файла. да и надо ли оно? >Переместите объявление трёх типов данных в private класса, а? как попробую - отпишусь.ь |
(0006678) Tolik (manager) 05-05-2012 06:06 edited on: 05-05-2012 06:08 |
Я думаю, надо, хотя бы на чтение. Скачал весь кэш целиком (например, какую-нибудь старую карту города) и пользуйся. Не надо хранить/ копировать много маленьких файлов. Тем более, если пользуешься и на СЕ/Андроиде. Напишите подробнее про ограничения, решим, стоит ли открывать хотелку. |
(0006679) Papazol (reporter) 05-05-2012 06:42 |
Несмотря на имеющиеся ограничения, такой формат вполне мог бы быть использован для хранения отдельных снимков, например, от Роскосмоса или DG. Поскольку эти снимки не имеют версий, перекачивать их не нужно, а хранить в упакованном формате всегда лучше. |
(0006681) Dima2000 (developer) 05-05-2012 09:54 |
>А что за распаковщик? Ссылку киньте, пожалуйста. http://4pna.com/showpost.php?p=145833&postcount=153 Мой будет примерно аналогичным, только без .NET и с использованием recovery info для определения имён и расширений файлов при её наличии в файлах (тогда и файл индекса не требуется). >А может, добавить поддержку этого кэша прямо в САС.Планету? Хотя бы read-only, если полноценный трудно сделать, было бы ещё удобнее. Я бы с превеликим удовольствием!! Вот тут как раз про это писал - http://sasgis.org/mantis/view.php?id=1282#c6641 Сделать модификацию такого хранилища на лету проблематично, я пока не уверен что можно и нужно. А вот с чтением проблем вообще никаких. Причём я бы даже добавил чтение такого хранилища в дополнение к существующему, при ненахождении файла на диске обратиться к пакованному архиву. Т.к. тайлы в архиве хранятся по координатам, без путей, то очевидно поддерживаются все 4 варианта файловых хранилищ из Планеты. Я готов добавить в класс метод чтения хранилища (хотя по уму это надо отдельный класс сделать, что тоже не проблема) на предмет поиска тайла по координатам. Ну и ещё чего-нибудь до кучи, к примеру сужения ограничивающего box до реально присутствующих в хранилище тайлов по любому зуму. >Напишите подробнее про ограничения Ограничения формата? 130млн тайлов (больше не влезет в 2ГБ индекса), 100 файлов данных с тайлами каждый по 2ГБ, по каждым координатам (z,x,y) строго один тайл (иначе в сортированых таблицах индекса будут повторы и какой тайл выберется предсказать невозможно, хотя это и не ошибка). Файл индеса хранит сортированные (для двоичного поиска) таблицы по Z, X[Z], Y[Z,X]. Модификацию формата сделать сложно именно из-за сортированности таблиц индекса, ну ещё из желания уложить их в файл плотно, без дыр. |
(0006683) Tolik (manager) 05-05-2012 10:05 |
Ну, я-то предлагал по-простому: ещё 1 тип кэша - SAS4WinCE. Как я понял, на чтение ограничений нет, на запись серьёзные. Давайте тогда откроем такую хотелку - поддержка только на чтение. Вы предлагаете более продвинутую фичу - чтение из дополнительного кэша при остутствии тайла в основном. То есть если нет в 1-м кэше, смотрим в 2-й, если там есть - выводим на экран. Это в режиме Кэш и Интернет+Кэш. Ну, в принципе, можно и такую хотелку открыть, только как это в гуях сделать - не представляю. |
(0006684) Garl (manager) 05-05-2012 10:07 |
универсальнее - отдельный тип кэша пусть и ReadOnly. а теперь внимание вопрос: стоит ли овчинка выделки? |
(0006685) Tolik (manager) 05-05-2012 10:15 |
Ну мне как потребителю овчинка нужна. А вы как программист скажите, сколько стоит выделка :) |
(0006686) Dima2000 (developer) 05-05-2012 10:17 |
>стоит ли овчинка выделки? Не знаю. Я не так часто перекачиваю огромные обалсти, чтобы не хранить их в архиве. Зато часто будет не нужен контейнер для миллионов мелких файлов, они будут собраны в архив и только изменения от состояния архива будут россыпью. Делать отдельный тип кэша - вот этого как раз не знаю зачем. Его же не докачаешь тогда. :( А вот "чтение из дополнительного кэша при остутствии тайла в основном" - полезная фича! Именно её и предлагаю. В GUI это просто, лишь галка использовать такой кэш и всё. Лежать он должен (это можно потребовать жестко, как и его имя совпадающее с папкой кэша) в корневой папке карты, там где каталоги z1..z24. Сама SAS его модифицировать никогда не будет, это проблема пользователя. Накачал в основной кэш много - раз в неделю/месяц/год запустил упаковку в архив. Интерфейс такой упаковки дело обсуждаемое, к самому принципу поддержки второго хранилища не относится. |
(0006687) Dima2000 (developer) 05-05-2012 10:18 |
>А вы как программист скажите, сколько стоит выделка :) Я готов всё написать, только встраивайте! И советуйте как вам удобнее, чтобы я так и написал. :) |
(0006688) Dima2000 (developer) 05-05-2012 10:20 edited on: 05-05-2012 10:21 |
Давайте откроем хотелку и перенесите обсуждение сразу туда, а? Если нет, ну так закроете... Уже открываю. |
(0006689) Papazol (reporter) 05-05-2012 10:21 |
Если делать продвинутую фичу, то в режиме Интернет+кэш программа не должна искать тайлы в упакованном формате, потому что, если они есть только там, а в обычном их нет, то они и не будут скачаны. |
(0006690) Tolik (manager) 05-05-2012 10:22 |
> Давайте откроем хотелку Конечно, это будет правильно. Две хотелки. А эту уже пора переводить в resolved. |
(0006691) Dima2000 (developer) 05-05-2012 10:25 |
Вот хотелка, переносите обсуждение туда - http://sasgis.org/mantis/view.php?id=1290 |
(0006692) Dima2000 (developer) 05-05-2012 10:27 |
> Если делать продвинутую фичу, то в режиме Интернет+кэш программа не должна искать тайлы в упакованном формате, потому что, если они есть только там, а в обычном их нет, то они и не будут скачаны. Нет, надо и искать, и скачивать - и класть в первый кэш, который хранит дополнения к пакованому. |
(0006694) Dima2000 (developer) 05-05-2012 10:35 |
Эту закрывать конечно можно, но может сюда ещё пожеланий именно к интерфесу экспорта добавить? Вот к примеру я бы хотел чтобы при выборе зумов показывался хотя бы очень примерно объём (или количество тайлов) сколько я собрался экспортировать. Как в скачке, по ограничивающему box. Это посчитать быстро. Вопрос лишь как и куда вывести. :) |
(0006696) Tolik (manager) 05-05-2012 10:36 |
Одна хотелка или 1 баг - 1 тикет. |
(0006699) Garl (manager) 05-05-2012 10:40 |
"доработку нельза закончить, её можно только прекратить" (с) так и улучшать можно до бесконечности... |
Users who viewed this issue | |
User List | Anonymous (3177x), reindjer (1x), bk99 (1x), Tolik (1x) |
Total Views | 3180 |
Last View | 21-11-2024 12:42 |
Issue History | |||
Date Modified | Username | Field | Change |
03-05-2012 13:05 | Dima2000 | New Issue | |
03-05-2012 13:25 | Papazol | Note Added: 0006655 | |
03-05-2012 19:00 | Garl | Note Added: 0006656 | |
03-05-2012 19:15 | Garl | Assigned To | => Garl |
03-05-2012 19:15 | Garl | Status | new => assigned |
03-05-2012 20:06 | Dima2000 | Note Added: 0006657 | |
03-05-2012 20:18 | Dima2000 | Note Added: 0006658 | |
03-05-2012 20:36 | Dima2000 | Note Edited: 0006658 | View Revisions |
04-05-2012 02:57 | Garl | Note Added: 0006659 | |
04-05-2012 05:20 | Garl | Note Added: 0006660 | |
04-05-2012 10:10 | Dima2000 | Note Added: 0006661 | |
04-05-2012 10:19 | Dima2000 | Note Added: 0006662 | |
04-05-2012 10:20 | Dima2000 | Note Edited: 0006662 | View Revisions |
04-05-2012 10:39 | Dima2000 | Note Added: 0006663 | |
04-05-2012 10:41 | Garl | Note Added: 0006664 | |
04-05-2012 10:42 | Dima2000 | Note Edited: 0006663 | View Revisions |
04-05-2012 11:22 | Garl | Note Added: 0006665 | |
04-05-2012 11:44 | Dima2000 | Note Added: 0006666 | |
04-05-2012 22:23 | Dima2000 | Note Added: 0006674 | |
05-05-2012 05:58 | Tolik | Note Added: 0006676 | |
05-05-2012 06:01 | Garl | Note Added: 0006677 | |
05-05-2012 06:06 | Tolik | Note Added: 0006678 | |
05-05-2012 06:08 | Tolik | Note Edited: 0006678 | View Revisions |
05-05-2012 06:42 | Papazol | Note Added: 0006679 | |
05-05-2012 09:54 | Dima2000 | Note Added: 0006681 | |
05-05-2012 10:05 | Tolik | Note Added: 0006683 | |
05-05-2012 10:07 | Garl | Note Added: 0006684 | |
05-05-2012 10:15 | Tolik | Note Added: 0006685 | |
05-05-2012 10:17 | Dima2000 | Note Added: 0006686 | |
05-05-2012 10:18 | Dima2000 | Note Added: 0006687 | |
05-05-2012 10:20 | Dima2000 | Note Added: 0006688 | |
05-05-2012 10:21 | Dima2000 | Note Edited: 0006688 | View Revisions |
05-05-2012 10:21 | Papazol | Note Added: 0006689 | |
05-05-2012 10:22 | Tolik | Note Added: 0006690 | |
05-05-2012 10:25 | Dima2000 | Note Added: 0006691 | |
05-05-2012 10:27 | Dima2000 | Note Added: 0006692 | |
05-05-2012 10:35 | Dima2000 | Note Added: 0006694 | |
05-05-2012 10:36 | Tolik | Note Added: 0006696 | |
05-05-2012 10:37 | Tolik | Status | assigned => resolved |
05-05-2012 10:37 | Tolik | Fixed in Version | => 120808 |
05-05-2012 10:37 | Tolik | Resolution | open => fixed |
05-05-2012 10:38 | Tolik | Target Version | => 120808 |
05-05-2012 10:38 | Tolik | Relationship added | related to 0001282 |
05-05-2012 10:40 | Garl | Note Added: 0006699 | |
13-05-2012 09:52 | gpsMax | Tag Attached: SAS4WinCE | |
10-10-2012 11:47 | Tolik | Status | resolved => closed |
My View | View Issues | Change Log | Roadmap | Search |
Copyright © 2007 - 2024 SAS.Planet Team |