SASGIS

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

Использование в Sas.Планета кеша в формате Berkeley

программа для загрузки и просмотра спутниковых снимков Земли, Луны, Марса предоставленных сервисами Google Maps и Космоснимки. Возможность работы с GPS приёмником.

Модератор: Tolik

Re: Использование в Sas.Планета кеша в формате Berkeley

Сообщение kefi » 28 фев 2014, 15:19

zed писал(а):Да это нормально. Очистить базу от удаленных файлов можно при помощи консольных утилит db_dump и db_load через создание дампа с последующим его восстановлением для каждого *.sdb файла в отдельности.

Так - а где инструкции по их использованию, и как, например, понять в каком SDB находятся интересующие меня тайлы ?

DJ VK » Я как раз не хотел бы иметь несколько вариантов одного и того же, хотелось бы нормальной работы с одним кешем , причем, чтобы не было миллиона фалов в нем.
kefi
Соображающий
 
Сообщения: 78
Зарегистрирован: 26 ноя 2011, 15:53
Благодарил (а): 1 раз.
Поблагодарили: 10 раз.

Re: Использование в Sas.Планета кеша в формате Berkeley

Сообщение zed » 28 фев 2014, 15:59

kefi писал(а):Так - а где инструкции по их использованию

viewtopic.php?f=2&t=2024&start=60#p34545
kefi писал(а):и как, например, понять в каком SDB находятся интересующие меня тайлы

Псевдокод:
Код: Выделить всё
'z' + (zoom) + '/' + (x shr 10) + '/' + (y shr 10) + '/' + (x shr 8) + '.' + (y shr 8) + '.sdb'

Операция сдвига вправо (shr) на 10 эквивалентна целочисленному делению на 1024, а сдвиг на 8 - деление на 256. Ну и можно посмотреть в строку состояния в SAS - там выводится полный путь до тайла.
kefi писал(а):причем, чтобы не было миллиона фалов в нем

В одном sdb файле может быть не более 65k тайлов (квадрат 256*256 тайлов). Естественно, это если речь про неверсионный кэш. В версионном будет по 65k тайлов на каждую версию (при полном заполнении квадрата).
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 568 раз.

Re: Использование в Sas.Планета кеша в формате Berkeley

Сообщение DJ VK » 28 фев 2014, 21:32

kefi писал(а): как, например, понять в каком SDB находятся интересующие меня тайлы ?

"Отображать границы изображений" включаем для интересующего масштаба минус 8 ;) - вот и границы отдельных sdb файлов, (и даже номера x= y= позволяющие найти их по имени в кэше).
kefi писал(а): Я как раз не хотел бы иметь несколько вариантов одного и того же, хотелось бы нормальной работы с одним кешем , причем, чтобы не было миллиона фалов в нем.

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

еще в тему - как почистить беркли от удаленных тайлов:
viewtopic.php?f=2&t=2024&start=60#p34543 и далее
Аватара пользователя
DJ VK
Гуру
 
Сообщения: 1468
Зарегистрирован: 16 апр 2009, 13:57
Откуда: 8 км. от МКАД
Благодарил (а): 82 раз.
Поблагодарили: 323 раз.

Re: Использование в Sas.Планета кеша в формате Berkeley

Сообщение Papazol » 10 мар 2014, 00:49

В версии 140303 есть набор утилит для Беркли. Он состоит как минимум из 5 файлов. А у меня кое-где хранятся утилиты, которые были раньше, и их гораздо больше. Так вот вопрос: имеет ли смысл держать все эти старые утилиты, или их снести, потому что они нерабочие?
И второй вопрос: нельзя ли положить всё, что относится к утилитам sdb, в отдельную папку, и чтобы сохранилась работоспособность?
Аватара пользователя
Papazol
Гуру
 
Сообщения: 2069
Зарегистрирован: 04 дек 2009, 01:39
Откуда: Рязань
Благодарил (а): 74 раз.
Поблагодарили: 647 раз.

Re: Использование в Sas.Планета кеша в формате Berkeley

Сообщение zed » 10 мар 2014, 01:13

Все старые db утилиты должны быть вполне себе рабочие и их можно располагать в любом месте, но придётся продублировать зависимые dll. Вот, полный список файлов, входящих в состав sdb_util (и все эти файлы должны находиться в одной папке):

Код: Выделить всё
libdb51.dll
msvcm90.dll
msvcp90.dll
msvcr90.dll
db_archive.exe
db_checkpoint.exe
db_deadlock.exe
db_dump.exe
db_hotbackup.exe
db_load.exe
db_log_verify.exe
db_printlog.exe
db_recover.exe
db_replicate.exe
db_stat.exe
db_upgrade.exe
db_verify.exe
sdb_util.exe

Те 4 db утилиты, что есть в релизе, используются в sdb_util.exe, а остальные можно использовать только через консоль и для обычного пользователя они не нужны (дополнительные утилиты могут пригодиться для отладки, поиска багов или изучения того, как на низком уровне работает кэш Беркли).

За это сообщение автора zed поблагодарил:
Papazol (10 мар 2014, 11:28)
Рейтинг: 5.26%
 
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 568 раз.

Re: Использование в Sas.Планета кеша в формате Berkeley

Сообщение Papazol » 25 май 2014, 13:34

В процессе работы с кэшем Беркли возникли следующие вопросы:
1. Каков порядок отображения тайлов при установке галки "Отображать предыдущие версии"? Почему такой вопрос возник? Если мы смотрим самую свежую версию, то все остальные по отношению к ней - предыдущие. То есть, все должны показываться. А если мы смотрим самую старую версию, то предыдущих для неё нет, но показывается самая свежая (по крайней мере).
2. Есть ли возможность сделать так, чтобы можно было указывать отображение нескольких (не всех) версий? То есть, для каждой версии отдельная галка? Если да, то создам хотелку.
Аватара пользователя
Papazol
Гуру
 
Сообщения: 2069
Зарегистрирован: 04 дек 2009, 01:39
Откуда: Рязань
Благодарил (а): 74 раз.
Поблагодарили: 647 раз.

Re: Использование в Sas.Планета кеша в формате Berkeley

Сообщение zed » 27 май 2014, 18:29

Papazol писал(а):Каков порядок отображения тайлов при установке галки "Отображать предыдущие версии"?

Если не найдена текущая версия, то отображается самая старшая/свежая/бОльшая версия.
Papazol писал(а):2. Есть ли возможность сделать так, чтобы можно было указывать отображение нескольких (не всех) версий? То есть, для каждой версии отдельная галка? Если да, то создам хотелку.

Открывайте хотелку, если там чего-то невозможно или нецелесообразно, то там и получите ответ от vdemidov-а.

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

За это сообщение автора zed поблагодарили: 2
Papazol (28 май 2014, 21:36) • vdemidov (28 май 2014, 12:25)
Рейтинг: 10.53%
 
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 568 раз.

Re: Использование в Sas.Планета кеша в формате Berkeley

Сообщение Papazol » 28 май 2014, 21:49

zed писал(а):Если не найдена текущая версия, то отображается самая старшая/свежая/бОльшая версия.

А если брать общий случай, то есть название версии не число, а строка?
Аватара пользователя
Papazol
Гуру
 
Сообщения: 2069
Зарегистрирован: 04 дек 2009, 01:39
Откуда: Рязань
Благодарил (а): 74 раз.
Поблагодарили: 647 раз.

Re: Использование в Sas.Планета кеша в формате Berkeley

Сообщение vdemidov » 28 май 2014, 22:21

Papazol писал(а):
zed писал(а):Если не найдена текущая версия, то отображается самая старшая/свежая/бОльшая версия.

А если брать общий случай, то есть название версии не число, а строка?

Так оно именно строки и сравнивает. Поэтому не удивляемся, если получится 1 > 10
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.

За это сообщение автора vdemidov поблагодарил:
Papazol (29 май 2014, 10:54)
Рейтинг: 5.26%
 
Аватара пользователя
vdemidov
Гуру
 
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз.
Поблагодарили: 157 раз.

Re: Использование в Sas.Планета кеша в формате Berkeley

Сообщение Papazol » 14 июл 2014, 12:00

Сегодня получилось следующее: тестируя zmp, забыл поменять GUID, соответственно, получил при загрузке программы сообщение и тут же закрыл программу крестиком в углу окна. После чего при старте получаю сообщение о такой ошибке:
14-07-2014 11:50:17.218 EBerkeleyDBExeption: BerkeleyDB Env: unable to join the environment [root path: q:\sasplanet\cache\yandex_map_db\]

Данная карта была открыта в программе последней. Теперь карта не открывается. Что нужно сделать?

UPD
Нужно применить к этому кэшу утилиту sdb_util с действием "prepare cache to backup (reset LSN)". При последующем старте SASПланеты environment создастся автоматически, и всё заработает.
Аватара пользователя
Papazol
Гуру
 
Сообщения: 2069
Зарегистрирован: 04 дек 2009, 01:39
Откуда: Рязань
Благодарил (а): 74 раз.
Поблагодарили: 647 раз.

Пред.След.

Вернуться в SAS.Планета

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17