Определение типа кэша
-
AlexWhiter
- Соображающий
- Сообщения: 63
- Зарегистрирован: 12 янв 2012, 16:55
- Благодарил (а): 3 раза
- Поблагодарили: 35 раз
Определение типа кэша
Приветствую!
В процессе реализации экспорта в растровый IMG столкнулся с необходимостью проверить, хранятся ли тайлы в кэше в виде отдельных файлов, или же свалены в базу данных.
В качестве временного решения вытаскиваю путь до тайла и сравниваю размер этого файла с размером TileData для этого тайла. Если размеры не совпадают, считаю, что тайлы хранятся в базе.
Однако, такой вариант мне не очень нравится, так как похож на велосипед с костылями.
Есть ли простой и, главное, быстрый способ узнать, что кэш для некоторого карто-источника хранит отдельные файлы для тайлов?
В процессе реализации экспорта в растровый IMG столкнулся с необходимостью проверить, хранятся ли тайлы в кэше в виде отдельных файлов, или же свалены в базу данных.
В качестве временного решения вытаскиваю путь до тайла и сравниваю размер этого файла с размером TileData для этого тайла. Если размеры не совпадают, считаю, что тайлы хранятся в базе.
Однако, такой вариант мне не очень нравится, так как похож на велосипед с костылями.
Есть ли простой и, главное, быстрый способ узнать, что кэш для некоторого карто-источника хранит отдельные файлы для тайлов?
- garl
- Гуру
- Сообщения: 1625
- Зарегистрирован: 16 июл 2008, 14:40
- Откуда: Краснодар, Кубанская столица.
- Благодарил (а): 97 раз
- Поблагодарили: 272 раза
- vdemidov
- Гуру
- Сообщения: 1687
- Зарегистрирован: 12 дек 2008, 13:10
- Откуда: Киев
- Благодарил (а): 191 раз
- Поблагодарили: 157 раз
Re: Определение типа кэша
Увы никакого. Только по совокупности zmp и maps.ini можно определить тип кэша, формат файлов и проекцию. А без этой информации гарантировано правильно интерпретировать папку с кэшем невозможно. Я давно думаю добавить запись в папку с кэшем ини файл с этой информацией, но пока не сделал, потому что не определился с форматом.
ЗЫЖ Но вообще, вся эта информация есть в самой САС.Планете. Так что проще всего просто сделать еще один экспорт.
ЗЫЖ Но вообще, вся эта информация есть в самой САС.Планете. Так что проще всего просто сделать еще один экспорт.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
-
AlexWhiter
- Соображающий
- Сообщения: 63
- Зарегистрирован: 12 янв 2012, 16:55
- Благодарил (а): 3 раза
- Поблагодарили: 35 раз
- vdemidov
- Гуру
- Сообщения: 1687
- Зарегистрирован: 12 дек 2008, 13:10
- Откуда: Киев
- Благодарил (а): 191 раз
- Поблагодарили: 157 раз
Re: Определение типа кэша
На всякий случай на помню, что кроме того файловое это тайлохранилище или какое-то другое, есть еще разные типы файловых тайлохранилищ. В них могут лежать тайлы в разных форматах. И самое главное, чего определить по самим файлам нельзя вообще никак это используемая в тайлохранилище проекция. Так что советую просто дать пользователю все это выбрать, а не пытаться угадать самому, если уж не хочется интегрироваться в саму Планету.AlexWhiter писал(а):Понятно, значит, пока оставлю так как есть.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
-
Gma
- Советчик
- Сообщения: 427
- Зарегистрирован: 10 апр 2011, 23:10
- Благодарил (а): 35 раз
- Поблагодарили: 89 раз
Re: Определение типа кэша
Возможно, в выборе проекции следует исходить не из желаний пользователя, а из возможностей гарминовских приборов, для которых, сопсно, это всё и делается. Помнится, там не такой большой выбор был ))vdemidov писал(а):... это используемая в тайлохранилище проекция. Так что советую просто дать пользователю все это выбрать, а не пытаться угадать самому, если уж не хочется интегрироваться в саму Планету.
- vdemidov
- Гуру
- Сообщения: 1687
- Зарегистрирован: 12 дек 2008, 13:10
- Откуда: Киев
- Благодарил (а): 191 раз
- Поблагодарили: 157 раз
Re: Определение типа кэша
В таком случае пользователя нужно или предупредить, что поддерживаются не все исходные проекции, или заниматься перепроецированием растров в процессе экспорта.Gma писал(а):Возможно, в выборе проекции следует исходить не из желаний пользователя, а из возможностей гарминовских приборов, для которых, сопсно, это всё и делается. Помнится, там не такой большой выбор был ))vdemidov писал(а):... это используемая в тайлохранилище проекция. Так что советую просто дать пользователю все это выбрать, а не пытаться угадать самому, если уж не хочется интегрироваться в саму Планету.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
-
Gma
- Советчик
- Сообщения: 427
- Зарегистрирован: 10 апр 2011, 23:10
- Благодарил (а): 35 раз
- Поблагодарили: 89 раз
Re: Определение типа кэша
Этот вариант мне кажется более разумным. При экспорте в jnx тоже самое происходит? Вот аналогично и надо делать.vdemidov писал(а):... или заниматься перепроецированием растров в процессе экспорта.
-
AlexWhiter
- Соображающий
- Сообщения: 63
- Зарегистрирован: 12 янв 2012, 16:55
- Благодарил (а): 3 раза
- Поблагодарили: 35 раз
Re: Определение типа кэша
Речь не о координатах тайлов, а всего лишь о том, где физически находится JPEG-файл.
Похоже, нужно объяснить, для чего это потребовалось.
В том случае, если одновременно выполняются условия:
* не используется цветокоррекция;
* TileInfo.ContentType.GetContentType вернул 'image/jpg';
* файл с тайлом в кэше имеет расширение '.jpg';
* кэш источника карт находится на том же диске, что и временный каталог %temp%;
* до папки кэша можно построить относительный путь, не длиннее 200 символов (ограничение компилятора)
при построении скрипта для компилятора вместо того, чтобы сохранять копии файлов с тайлами, используются относительные пути до файлов в кэше.
Похоже, нужно объяснить, для чего это потребовалось.
В том случае, если одновременно выполняются условия:
* не используется цветокоррекция;
* TileInfo.ContentType.GetContentType вернул 'image/jpg';
* файл с тайлом в кэше имеет расширение '.jpg';
* кэш источника карт находится на том же диске, что и временный каталог %temp%;
* до папки кэша можно построить относительный путь, не длиннее 200 символов (ограничение компилятора)
при построении скрипта для компилятора вместо того, чтобы сохранять копии файлов с тайлами, используются относительные пути до файлов в кэше.
-
AlexWhiter
- Соображающий
- Сообщения: 63
- Зарегистрирован: 12 янв 2012, 16:55
- Благодарил (а): 3 раза
- Поблагодарили: 35 раз
Re: Определение типа кэша
А вот и тестовая сборка SAS.Планеты с экспортом в IMG: https://yadi.sk/d/LuPK5haN3EL8Sk.
Распаковать в папку с уже установленной SAS.
Распаковать в папку с уже установленной SAS.