Чем открыть файл mbtiles
TileMill — картографическая дизайн студия
TileMill — это инструмент для картографов, позволяющий быстро и просто создавать и оформлять карты для веба, используя разные источники данных. Он создан на основе Mapnik, мощной библиотеки с открытым исходным кодом. TileMill не является картографическим инструментом общего назначения, он предназначен для решения узкого набора задач.
Принцип работы TileMill очень прост. Вы импортируете свои векторные данные в студию. TileMill поддерживает ESRI shapefiles, KML, GeoJSON, GeoTIFF и, с недавних пор, заявлена поддержка PostGIS. Оформляете всё это с помощью CSS подобного языка Carto и экспортируете в один из форматов (PNG, PDF или MBTiles).
За подробностями приглашаю под кат.
Системные требования
Mapnik
Установка Mapnik
Немного о картографии
Для тех, кто знаком с ГИС или картографией, сразу скажу, что карты в TileMill всегда проецируются в Web Mercator (EPSG: 900913). Эту проекцию также используют Microsoft Bing Maps, Google Maps и ESRI ArcGIS Online.
Широко распространён формат системы пространственной привязки данных proj4 SRS (spatial referencing system). Эта система предоставляет возможность описать проекцию и систему координат источника данных одной записью — строкой SRS (SRS string). Например, строка SRS, описывающая WGS84, выглядит примерно так:
+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs
В большинстве случаев, TileMill может определить SRS загружаемых shape-файлов и других источников данных. Но иногда может потребоваться указать SRS самостоятельно, в случае когда TileMill не сможет её определить самостоятельно.
Что такое тайлы?
Тайл — это растровое изображение формата PNG/JPEG размером 256×256 пикселей.
TileMill поддерживает разные уровни представления. Уровень представления — это предустановленный масштаб отображения карты. OpenStreetMap, Google Maps и другие картографические веб-сервисы предоставляют тайлы размером 256×256 пикселей на нулевом уровне представления и удваивают размеры на каждом последующем уровне. Например: на нулевом уровне представления, виден весь мир, на шестом уровне — страна средних размеров, на одинадцатом — мегаполис. На шестнадцатом уровне можно увидеть отдельные дома.
Кроме того, TileMill поддерживает экспорт карт в формат MBTiles. Этот формат был разработан специально для хранения карт и возможности доступа к ним как онлайн так и оффлайн.
MBTiles
MBtiles — это спецификация для хранения нарезанных на тайлы карт в СУБД SQLite с возможностью мгновенной отдачи. Подобный формат данных позволяет переносить тысячи, сотни тысяч и даже миллионы тайлов в одном файле.
Скорость отдачи MBTiles выше чем скорость отдачи миллионов отдельных тайлов, при загрузке на USB, мобильные устройства, или при передаче по сети. Разница, в скорости, между доступом к базе данных или файловой системе, при использовании MBTiles — незначительна.
Так как MBTiles используют встраиваемую СУБД SQLite, то они могут использоватся без соединения с Интернетом.
Тайлы хранятся как BLOB (Binary Large OBjects — формат хранения больших обьемов двоичных данных), следовательно, могут быть использованы в большинстве SQLite клиентах.
Установка TileMill
Исходный код TileMill доступен на Github.
git://github.com/mapbox/tilemill.git
cd tilemill
./ndistro
Обзор интерфейса
Перейдя по ссылке localhost:8889 вам будет доступен набор предустановленных проектов. Выбрав один из них, вы перейдёте на страницу редактирования.
Просмотр атрибутивной таблицы
Пример использования Carto
Carto — это CSS подобный язык для оформления карт, используемый в TileMill. Следующий код устанавливает цвет и размеры для линий слоя с идентификатором layer и добавляет к нему свойство glow.
#layer <
line-color: #C00;
line-width: 1;
>
#layer::glow <
line-color: #0AF;
line-opacity: 0.5;
line-width: 4;
>
Вот что мы получим в итоге.
Топик вышел объёмный, а мне всё ещё есть о чём рассказать. Если вас заинтересовала эта статья, то я могу продолжить и рассмотреть TileMill подробнее. Кроме того, есть ещё один продукт, который используется в связке с TileMill — это TileStream. Имеет смысл рассмотреть и его тоже. Спасибо за внимание.
Полезные ссылки
P.S: Вы можете найти поддержу на IRC канале #mapbox в сети Freenode.
P.P.S: К сожалению, я не нашел близкий по тематике блог, поэтому разместил в open source. Насколько я помню, пару раз на Хабре поднималась тема о создании блога посвященного ГИС. Судя по опросу, это интересно читателям. Может быть, после этого топика, НЛО заинтересуется ГИС?
UPDATE: продолжение здесь.
время чтения: 3 минуты
Справедливости ради стоит отметить, что многие популярные навигационные приложения для iOS, например, такие как Яндек.Карты также умеют загружать офлайновые версии карт городов. Но в случае с MapTiler GPS MBTiles пользователи могут сохранить в памяти устройства свою собственную карту. Это может быть хоть карта средиземья из книги Властелин колец.
При этом навигация будет осуществляться с помощью GPS модуля. Одним из таких приложений является MapTiler GPS MBTiles. В этой статье краткая инструкция как сделать и закачать свои карты в iPhone.
Перед тем, как приступить к загрузке офлайновых карт в MapTiler GPS MBTiles нужно учесть несколько особенностей:
— Для создания карты понадобится компьютер на базе Windows или OS X.
— Для переноса карты в память устройства пригодится аккаунт Dropbox.
Для создания офлайновой карты в MapTiler GPS MBTiles нужно:
1. Приобрести само приложение MapTiler GPS MBTiles Viewer в iTunes за 119 рублей.
2. Скачать сайта MapTiler настольную версию приложения (существуют версии для Windows, Mac и Linux).
3. Найти карту в нужном формате. Сделать это можно с помощью любой популярной поисковой системы.
4. Запустить настольную версию приложения MapTiler.
5. В основном окне приложения нажать на пункт Standart Tiles.
6. Перетащить файл карты в основное окно приложения MapTiler.
7. В открывшемся окне подтвердить систему координат.
8. Далее нужно привязать изображение к координатам на карте. Сделать это можно несколькими способами.
Одним из самых простых можно считать Assign location visually.
При выборе этого пункта нужно найти и отметить на изображении и на онлайн-картах одинаковые точки. Например, крупные достопримечательности, дорожные развязки и т.д. Для привязки достаточно трех точек.
9. После добавления трех точек нужно нажать на кнопку Save. При необходимости координаты можно изменить, нажав на пункт Change.
10. Нажать на клавишу Continue.
11. В новом окне выбрать пункт MBTiles и нажать на клавишу Render.
12. Ввести название карты и выбрать директорию, в которую будет сохранен готовый файл.
13. Дождаться пока процесс подготовки файла завершится.
14. В новом окне выбрать пункт Send to mobile.
15. В новом окне ввести данных учетной записи Dropbox и дождаться завершения загрузки готовой карты в облако.
16. На мобильном устройстве запустить приложение MapTiler.
17. Открыть дополнительное меню и перейти в раздел настроек.
18. Нажать на пункт Link Dropbox.
19. Ввести данные учетной записи Dropbox и разрешить приложению MapTiler получить доступ к папке Приложения – MapTiler.
20. После этого в левой колонке появится новая карта. Так можно закачать свои карты в iPhone и начинать ими использовать.
Стоит отметить, что у MapTiler есть несколько разных подписок. В зависимости от выбранного «пакета» пользователи получают доступ к разным функциональным возможностям. К примеру, в бесплатной версии действуют ограничения на максимальный размер карты (10 на 10 тысяч пикселей), а также искусственно ограничивается скорость рендеринга карты. При необходимости пользователи могут снять все ограничения. Однако нужно это далеко не всем, чтобы закачать свои карты в iPhone достаточно и бесплатной версии.
Чем открыть файл mbtiles
«Не умею» не значит «невозможно», «не видел» не значит «не бывает». «Нет проблемы», вероятнее всего, значит, что «нет мозгов».
#2 2015-08-14 03:44:24
Re: Способы конвертирования растровых данных в тайловые форматы
GlobalMapper http://www.bluemarblegeo.com/products/global-mapper.php коммерческое ПО, GUI, Windows, экспортирует все, что угодно, в TMS, без танцев с бубном, но за деньги.
TileMill https://www.mapbox.com/tilemill/docs/gu … g-geotiff/ бесплатное ПО, GUI, Win, Mac, Linux, поддержка прекращена, с некоторой возней работает с GeoTIFF, для таковых с проекцией, отличающейся от EPSG:3857, требует перепроецирования (в GDAL).
GDAL, gdal2tiles.py http://www.gdal.org/gdal2tiles.html бесплатное ПО, командная строка, практически все платформы (под Windows категорически рекомендуется ставить в составе http://trac.osgeo.org/osgeo4w/ )
Инструкция по подготовке композитов и нарезке тайлов http://gis-lab.info/qa/landsat-tiles.html (GDAL, Python, QGIS и т.п.)
«Не умею» не значит «невозможно», «не видел» не значит «не бывает». «Нет проблемы», вероятнее всего, значит, что «нет мозгов».
#3 2015-08-14 03:51:41
Re: Способы конвертирования растровых данных в тайловые форматы
«Не умею» не значит «невозможно», «не видел» не значит «не бывает». «Нет проблемы», вероятнее всего, значит, что «нет мозгов».
#4 2015-08-14 07:32:05
Re: Способы конвертирования растровых данных в тайловые форматы
Qtiles http://gis-lab.info/qa/qtiles.html — плагин к QGIS: сделал карту, нажал кнопку, получил тайлы с простой веб-страницей для проверки.
#5 2015-08-14 20:35:49
Re: Способы конвертирования растровых данных в тайловые форматы
под Windows категорически рекомендуется ставить в составе http://trac.osgeo.org/osgeo4w/
А я дурак собирал всё из исходников.
Что-то из представленного может нарезать только конкретный запрошенный тайл? Пусть это будет дольше в использовании, но всё равно должно быть быстрее чем зарание заказ с 9-14 зумы.
#6 2015-08-14 21:06:54
Re: Способы конвертирования растровых данных в тайловые форматы
А я дурак собирал всё из исходников.
Что-то из представленного может нарезать только конкретный запрошенный тайл? Пусть это будет дольше в использовании, но всё равно должно быть быстрее чем зарание заказ с 9-14 зумы.
Я с некоторым трудом понимаю, чего вы тут хотите.
Если под запросом вы понимаете «указать программе один конкретный тайл или участок вручную», то большинство из них, естественно, поддерживают ограниченные области экспорта.
Last edited by BushmanK (2015-08-14 21:09:05)
«Не умею» не значит «невозможно», «не видел» не значит «не бывает». «Нет проблемы», вероятнее всего, значит, что «нет мозгов».
SASGIS
ReefMaster
Модератор: Tolik
ReefMaster
Буду рад ответам и советам. Заранее спасибо!
dbase = sqlite3.connect(‘MyReefMasterMap.mbtiles’) # open sqlitedb
cur = dbase.cursor() # create cursor
cur.execute(‘SELECT * FROM tiles’) # goto tiles
row = cur.fetchone() #read 1st row
# make subdir
file_dir = ’tile_gmt\\z’ + format(row[0])+ ‘\\’ +format(row[1]) + ‘\\’
if not os.path.exists (file_dir): os.makedirs (file_dir)
Re: ReefMaster
Текст скрипта:
Код: Выделить всё #
# ReefMaster v2.0 MBtiles to SAS.planet cache convetrer
#
import sqlite3, os
extension = ‘.png’
dbase = sqlite3.connect(‘НазваниеВашейКартыВписываемСюда.mbtiles’) # open sqlitedb
cur = dbase.cursor() # create cursor
cur.execute(‘SELECT * FROM tiles’) # goto tiles
row = cur.fetchone() #read 1st row
В корне программы создаём папку Maps\sas.maps\ReefMaster.zmp\ с файлом params.txt следующего содержания:
Код: Выделить всё [PARAMS]
pnum=20
GUID=
asLayer=1
name_ru=ReefMaster
name =ReefMaster
name_uk=ReefMaster
projection=1
sradiusa=6378137
sradiusb=6378137
NameInCache=ReefMaster
Ext=.png
ContentType=image/png
(файл param.txt я создавал на основе ZMP от Google Maps)
Это конечно хорошо, но затевалось всё для просмотра карты глубин на андроидном планшете в программе SAS4Android (для доступа из России необходимо воспользоваться VPN, например, установив дополнение BrowSec в хроме или опере).
PS: в питоновском скрипте СonvertMBtilesToSAS.py не забудьте поменять название НазваниеВашейКартыВписываемСюда.mbtiles на нужное (лучше латиницей)!
Re: ReefMaster
Re: ReefMaster
Re: ReefMaster
Расширенные возможности TileMill
Продолжаю обзор картографической дизайн студии TileMill.
Легенда
Как я и обещал, сегодня я покажу как можно расширить область применения TileMill с помощью создания легенды и использования интерактивности.
Начнём с создания легенды для карты. Для этого, откройте настройки проекта и перейдите во вкладку «Legend».
Легенда должна содержать HTML код. Также вы можете использовать CSS (если вы хотите совместимость с iPad) или полагаться на внешние CSS предоставляемые веб-приложениями.
Легенда может включать в себя изображения, например, пиктограммы соответствующие маркерам на карте. Вы можете также использовать символы юникода, такие как геометрические фигуры или символы box-drawing наряду с собственными цветами и CSS для создания линий, фигур и точек.
Вот пример простой легенды:
Интерактивность
Релиз TileMill 0.2.0 примечателен новой возможностью — поддержкой интерактивных карт. Интерактивность позволяет извлечь данные из атрибутивной таблицы и отобразить их на карте с помощью подсказок или всплывающих окон.
TileMill использует специальные «сетки» для описания взаимодействия данных в невидимых JSON тайлах. Javascript и HTML — это всё что необходимо для того, чтобы обеспечить интерактивность на карте, таким образом, этот метод на 100% совместим со стандартами W3C. Используя эту технологию, появляется возможность отображения тысяч интерактивных элементов на карте, без использования Flash и не беспокоясь о падении скорости приложения.
Итак, чтобы добавить интерактивность, откройте настройки проекта и выберите вкладку «Interactivity».
Интерактивность можно экспортировать в формат MBTiles, который можно использовать на тайловом сервере TileStream и SaaS платформе от разработчиков студии — TileStream Hosting.
MBTiles
MBtiles — это спецификация для хранения нарезанных на тайлы карт в СУБД SQLite с возможностью мгновенной отдачи. Подобный формат данных позволяет переносить тысячи, сотни тысяч и даже миллионы тайлов в одном файле.
Скорость отдачи MBTiles выше чем скорость отдачи миллионов отдельных тайлов, при загрузке на USB, мобильные устройства, или при передаче по сети. Разница, в скорости, между доступом к базе данных или файловой системе, при использовании MBTiles — незначительна.
Так как MBTiles используют встраиваемую СУБД SQLite, то они могут использоватся без соединения с Интернетом.
Тайлы хранятся как BLOB (Binary Large OBjects — формат хранения больших обьемов двоичных данных), следовательно, могут быть использованы в большинстве SQLite клиентах.
Пример
Скачайте набор тайлов Haiti Terrain Grey. Затем, откройте файл в SQLite клиенте:
Выполните следующее SQL выражение:
Вы получите все тайлы с уровнем представления равным пяти.
Сжатие MBTiles
Команда разработчиков хорошо потрудилась над сжатием MBTiles. Они обнаружили, что можно уменьшить размер файла до 60% сохраняя обратную совместимость.
Принцип сжатия прост — таблица ’tiles’ заменяется на представление с таким же именем, которое возвращает те же результаты.
Этот способ — упрощённая версия алгоритма сжатия скользящего окна (этот алгоритм лежит в основе zip, 7zip и многих других популярных форматов). В результате получается файл, заметно меньшего размера. Особенно хорошо это заметно для таких наборов векторных данных как World Light, с большим количеством уровней представления.
Заключение
На сегодня это всё, спасибо за внимание. В следующем топике я рассмотрю использование PostGIS в TileMill и использование MBTiles на практике, с помощью тайлового сервера TileStream и разных картографических библиотек.