По Тверской губернии с картой XIX века

Начиная с самого первого номера нашего журнала, редакция в каждом выпуске в рубрике «Редкости» готовит подарок читателям: уникальную карту, как правило, никогда ранее не публиковавшуюся, или план местности. За неполных два года мы познакомили вас практически со всеми крупными картографическими сериями XIX–XX веков.

До самого последнего времени мы выкладывали эти карты «как есть», то есть непривязанными. Так мы поступали вполне сознательно: поскольку параллельно в теоретической и практической рубриках, посвящённых картографии, мы проводили в некотором смысле «ликбез» по привязке карт, постольку мы рассчитываем, что самые любознательные читатели уже в состоянии это сделать сами. Хотя мы и дальше будем публиковать такие теоретические и практические материалы, но уже сейчас нам кажется, что определённые базовые понятия читатель получил. Поэтому в этот раз мы решили немного отойти от принятой схемы действий, и впервые публикуем карту привязанную.

Тем более, что для этого есть и другой повод: познакомить читателей с самыми современными форматами представления картографической информации. И не только современными, но и очень удобными для использования в современных навигационных программах.

Многие уже догадались: речь пойдёт о картах в формате .sqlitedb, который завоёвывает всё большую и большую популярность, в первую очередь из-за того, что его «понимают» самые современные и удобные программы, такие, как Locus Maps и OsmAnd для устройств на Android или Galileo для систем, использующих iOS.

Остановимся на этом формате немного подробнее.

На самом деле, sqlitedb не является каким-то специальным картографическим форматом, это всего лишь распространённый формат для хранения баз данных SQLite, которые могут быть самыми произвольными. Картой этот формат делает специальная структура базы данных. Давайте её коротко рассмотрим.

Сразу оговоримся, что часто этот формат записывают в виде «sqlitedb (RMaps)», тем самым подчёркивая, что именно такая структура впервые была использована в очень интересной и перспективной программе для навигации RMaps. Но, как это иногда бывает, судьба у программы как-то не сложилась, и через некоторое время она практически прекратила своё существование. А вот формат оказался настолько удобным и простым, что он выжил и с успехом был использован разработчиками программ уже следующего поколения, которые мы упомянули выше.

Если открыть файл карты в этом формате каким-нибудь просмотрщиком баз данных, то мы с некоторым удивлением увидим, что база данных содержит всего две таблицы: info и tiles.

Screenshot_2016-10-12-15-53-47-1.png

Ещё интересней, что вся основная информация хранится во второй таблице, а в первой, info, есть всего лишь одна запись — о максимальном и минимальном уровне «зумов» карты. Об этих уровнях чуть ниже, а пока, бросив беглый взгляд на таблицу info,

Screenshot_2016-10-12-15-54-07-1.jpg

перейдём к рассмотрению основной таблицы базы данных. И снова бросается в глаза её простая структура. Пользователь, хотя бы раз сталкивавшийся с хранением так называемых «тайлов» в популярных онлайн-сервисах, наподобие Google Maps или Яндекс-карт сразу скажет: «Так ведь это тайловая структура!» И будет абсолютно прав: это ровно те же самые тайлы, только упакованные внутри таблицы базы данных. Только вместо папок, в которые разложены тайлы разной степени увеличения (те самые «зумы»), в таблице эти степени прописаны в виде отдельной колонки. Остальное — это общепринятая нумерация тайлов, а сами тайлы хранятся в последней колонке таблицы, упакованными в двоичный формат.

Screenshot_2016-10-12-15-54-53-1.jpg

У такого решения есть определённые преимущества: при корректной работе программы тайлы не надо считывать с диска или карты памяти «по одному», вместо этого вся таблица (или некоторая её часть) помещается в оперативную память устройства и доступ к каждому тайлу происходит намного быстрее. Для онлайновых карт в этом не было бы заметного выигрыша, поскольку приходилось бы каждый раз скачивать большой файл базы данных. А вот для оффлайновых карт, конечно, гораздо проще прочитать один раз большой файл, чем каждый раз читать множество мелких.

А теперь, когда мы коротко познакомились с форматом, перейдём непосредственно и к карте номера. Раз уж тема номера у нас — «Бежецкий Верх», то и карту мы подготовили соответствующую: двухвёрстную карту Менде, охватывающую целиком Тверскую губернию XIX века (об этих картах мы писали подробней в одном из предыдущих номеров). С этой картой читателю будет намного проще ориентироваться в материалах, которые мы публикуем в этом выпуске.

Оговоримся лишь напоследок, что склейка и привязка карты осуществлялась проектом «Это Место», мы лишь перевели исходные файлы в интересующий нас формат. Если читателя заинтересует более точная привязка такой карты, осуществлённая нашими силами, то он всегда может отправить запрос в редакцию на адрес электронной почты maps@russia4d.ru или задать вопрос на форуме.

Данную же карту читатель может получить несколькими способами, в зависимости от устройства, на котором он читает этот выпуск. Универсальным способом, подходящим как для устройств на Android, так и для устройств на iOS будет скачивание карты по ссылке:

http://russia4d.ru/files/4-16/MendeTver2v.sqlitedb

Для устройств на Android файл нужно будет поместить в любое подходящее место на устройстве и указать программе (например, Locus Maps) это место, как источник внешних карт.

А вот для пользователей iOS и, соответственно, программы Galileo, работающей с этим форматом, подключение придётся сделать через iTunes, для чего карту необходимо будет временно поместить на PC или макбук.

Другой, более прямой способ, подходит лишь для устройств на Android. У пользователя должна быть установлена какая-нибудь программа-архиватор, например, ZArchiver. Нажав на эту ссылку, вы непосредственно её запустите, после чего непосредственно из архиватора укажете ему, куда следует распаковать файл.

В результате, открыв карту, к примеру, с помощью Locus Maps, вы должны получить следующую картинку:

Screenshot_2016-10-12-20-07-50.jpg

Желаем вам приятного путешествия с нашей картой!

Владимир Комиссаров