Здесь показаны различия между двумя версиями данной страницы.
zmp [27/05/2023 00:46] radioxoma Комментарий |
zmp [18/05/2025 00:57] (текущий) 94.180.117.26 [Формат zmp и создание карт] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
====== Формат zmp и создание карт ====== | ====== Формат zmp и создание карт ====== | ||
- | Каждый картографический сервис в SASPlanet описывается в "zmp". Это zip-архив или папка с расширением ''.zmp'', в которой хранится текстовое описание сервиса в особом формате. Один "zmp" соответствует одной карте и независим от других. Сама аббревиатура является производным от слов: **z**ip **m**a**p**. | + | Каждый картографический сервис в SASPlanet описывается в "zmp". Это папка или zip-архив с расширением ''.zmp'', в котором хранится текстовое описание сервиса в особом формате. Один "zmp" соответствует одной карте и независим от других. Сама аббревиатура является производным от слов: **z**ip **m**a**p**. |
- | Готовые zmp распространяются через [[основной_репозиторий|git-репозиторий]] отдельно от SAS.Planet. Сразу после установки программы обновите набор zmp. | + | Коллекция zmp расположена в подпапках ''Maps'' в виде дерева каталогов и распространяется через [[основной_репозиторий|git-репозиторий]] отдельно от SAS.Planet. В прошлом в программе использовались только zip-архивы с расширением ''.zmp''. Сразу после установки программы обновите набор zmp. |
===== Общий принцип ===== | ===== Общий принцип ===== | ||
- | SAS.Planet скачивает [[тайл|тайлы]] с сервера и сохраняет их в кеш. В zmp описывается, как формируется ссылка на конкретный тайл и особенности HTTP-запроса на скачивание с конкретного сервера. При создании zmp чаще всего копируют поведение браузера при просмотре online-карт. Удобно пользоваться встроенными в браузер инструментами веб-разработчика, так, для Firefox нажмите //F12//, после чего откройте веб-страницу с картой. | + | SAS.Planet скачивает [[тайл|тайлы]] с сервера и сохраняет их в тайловый кеш. В zmp описывается, как формируется ссылка на конкретный тайл и особенности HTTP-запроса на скачивание с конкретного сервера. При создании zmp чаще всего копируют поведение браузера при просмотре online-карт. Удобно пользоваться встроенными в браузер инструментами веб-разработчика, так, для Firefox нажмите //F12//, после чего откройте веб-страницу с картой. |
Обучающие примеры: | Обучающие примеры: | ||
Строка 20: | Строка 20: | ||
===== Структура ZMP ===== | ===== Структура ZMP ===== | ||
- | Коллекция zmp карт располагается в подпапках ''Maps'' программы. Изначально в программе использовались только zip-архивы с расширением ''.zmp'', затем появилась возможность хранить описание в неархивированных папках. Каждый zmp может содержать следующие файлы и папки: | + | Каждый zmp может содержать следующие файлы и папки: |
- | * **params.txt** (обязательно) — параметры карты; | + | * **params.txt** — описывает основные параметры карты или слоя, единственный файл, который **является обязательным**; |
- | * **[[описание_паскаль_скриптов|GetUrlScript.txt]]** (обязательно, если не используется [[простой_пример_с_плейсхолдерами|упрощенное добавление карт]]) — скрипт, отвечающий за формирование ссылки на тайл карты и пользовательских заголовков; | + | * **[[описание_паскаль_скриптов|GetUrlScript.txt]]** — скрипт, отвечающий за формирование ссылки на тайл карты и пользовательских заголовков; не нужен если используется [[простой_пример_с_плейсхолдерами|упрощенное добавление карт]]). Скрипты пишутся на обычном Pascal. Основными параметрами [[тайл|тайла]] являются масштаб и координаты по осям ''x'' и ''y''. Масштаб обозначается переменной ''GetZ'' (начинается с единицы), координаты по осям ''x'' и ''y'' - соответственно переменными ''GetX'' и ''GetY''. Эти переменные привязаны к [[Тайл|тайловой сетке]], принятой для [[maps:Google Maps|Google Maps]]; |
- | * **info.txt** — словесное описание карты в HTML; | + | * **24.bmp** — файл иконки, отображаемой на панели инструментов. Содержимое этого файла — изображение произвольного размера в формате BMP, PNG, ICO и других, но имя должно быть ''24.bmp''. В ранних версиях программы требовались иконки ''18.bmp'' (BMP, 18×18 pix, цвет фона RGB(255,0,255)) и ''24.bmp'' 24×24 pix, цвет фона RGB(255,0,255)). |
- | * **24.bmp** — файл иконки, отображаемой на панели инструментов. Содержимое этого файла — изображение произвольного размера в формате BMP, PNG, ICO и других (но с расширением BMP). В ранних версиях программы требовались иконки ''18.bmp'' (BMP, 18×18 pix, цвет фона RGB(255,0,255)) и ''24.bmp'' 24×24 pix, цвет фона RGB(255,0,255)). | + | * **info.txt** — словесное описание карты в подмножестве HTML (в частности, абзацы надо разделять тегом <BR>). Возможен вывод графических файлов (например, легенды карты), через тег ''<img src=”path\to\image.bmp”/>''. Ссылаться можно в т.ч. на изображения в папке zmp. |
* графические файлы, ссылка на которые размещена в ''info.txt'' (например, легенда карты); | * графические файлы, ссылка на которые размещена в ''info.txt'' (например, легенда карты); | ||
- | * **EmptyTiles** — директория, содержащая образцы тайлов, которые не будут сохраняться после скачивания с сервера (например, полностью прозрачные тайлы). В некоторых случаях сервер отдаёт «пустышки» в формате, отличном от формата обычных тайлов, например, обычные тайлы — jpg, а «пустышка» — png. SAS.Planet же переписывает все принятые тайлы в формат, указанный в параметре ''Ext'' (см. ниже). В таких случаях в качестве образцов необходимо использовать исходные файлы, отправленные сервером, а не брать их из кэша программы. | + | * **EmptyTiles** — директория, содержащая образцы файлов, которые отдаёт сервер вместо пустых (полностью прозрачных) или отсутствующих тайлов, а также в случае бана. Такие тайлы не будут сохраняться в SAS.Planet. В некоторых случаях сервер отдаёт нормальные тайлы в одном формате (например //image/jpeg//), а «пустышки» в другом (например полностью прозрачный //image/png//). Поскольку SAS.Planet конвертирует все принятые тайлы в формат, указанный в параметре ''Ext'' (см. ниже), то в качестве образцов необходимо использовать исходные файлы, отправленные сервером, а не брать их из кэша программы. |
===== params.txt ===== | ===== params.txt ===== | ||
- | Параметры файла **params.txt**: | + | > Некоторые из параметров карты могут быть изменены внутри программы без редактирования файла ''params.txt''. Для этого нужно зайти в //Параметры->Параметры карты// или нажать //Ctrl+Alt+P//. Пользовательские изменения настроек карт сохраняются в файле ''Maps/maps.ini''. |
Раздел **[PARAMS]** | Раздел **[PARAMS]** | ||
Строка 49: | Строка 49: | ||
^ CacheType ^ Название ^ Путь ^ Комментарий ^ | ^ CacheType ^ Название ^ Путь ^ Комментарий ^ | ||
- | | 0 | По умолчанию | | Ранее использовался 2, теперь 71. | | + | | 0 | По умолчанию | | Ранее использовался 2, теперь 71 | |
| 1 | GoogleMV | ''cache_old/ /{z+1}/{q}.{ext}'' | [[https://learn.microsoft.com/en-us/bingmaps/articles/bing-maps-tile-system|Quadkey]] | | | 1 | GoogleMV | ''cache_old/ /{z+1}/{q}.{ext}'' | [[https://learn.microsoft.com/en-us/bingmaps/articles/bing-maps-tile-system|Quadkey]] | | ||
| 2 | SAS.Planet | ''cache/'' | | | 2 | SAS.Planet | ''cache/'' | | ||
Строка 56: | Строка 56: | ||
| 41 | GlobalMapper Aux | ''cache_gmt/'' | Не используется? | | | 41 | GlobalMapper Aux | ''cache_gmt/'' | Не используется? | | ||
| 42 | GlobalMapper Bing | ''cache_gmt/ /{z}/{y}/{x}.{ext}'' | [[http://www.sasgis.org/mantis/view.php?id=780|Тикет 780]] | | | 42 | GlobalMapper Bing | ''cache_gmt/ /{z}/{y}/{x}.{ext}'' | [[http://www.sasgis.org/mantis/view.php?id=780|Тикет 780]] | | ||
- | | 43 | **Mobile Atlas Creator** ([[https://mobac.sourceforge.io/|MOBAC]]) | ''cache_ma/ /{z}/{x}/{y}.{ext}'' | [[http://www.sasgis.org/mantis/view.php?id=1936|Тикет 1936]]. Тип кеша известен как [[https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames|Slippy map]]. Нумерация тайлов используется в Openstreetmap и Google. Кеш легко подключается к [[https://josm.openstreetmap.de/|JOSM]], QGIS: | + | | 43 | **[[https://mobac.sourceforge.io/|Mobile Atlas Creator]] (MOBAC)** | ''cache_ma/ /{z}/{x}/{y}.{ext}'' | [[http://www.sasgis.org/mantis/view.php?id=1936|Тикет 1936]]. Тип кеша известен как [[https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames|Slippy map]]. Нумерация тайлов используется в [[OpenStreetMap]] и Google. Кеш подключается к QGIS, [[https://mapproxy.org/docs/nightly/caches.html#cache-file|MapProxy]]. Для использования с [[https://josm.openstreetmap.de/|JOSM]] достаточно: |
- | tms:file:///home/user/SAS.Planet/cache_ma/vesat/{z}/{x}/{y}.jpg | + | tms:file:///home/user/SAS.Planet/cache_ma/vesat/{z}/{x}/{y}.jpg # Linux |
tms[18]:file:///c:/SAS.Planet/cache_ma/vesat/{z}/{x}/{y}.jpg # Windows | tms[18]:file:///c:/SAS.Planet/cache_ma/vesat/{z}/{x}/{y}.jpg # Windows | ||
| | | | ||
| 44 | OsmAnd+ Tiles | Экспорт ''{z}/{x}/{y}.{ext}.tile'' | [[http://www.sasgis.org/mantis/view.php?id=884|Тикет 884]]. Не то же самое что "OsmAnd (SQLite3)" ''*.sqlitedb'' ([[http://www.sasgis.org/mantis/view.php?id=3577|тикет 3577]]) | | | 44 | OsmAnd+ Tiles | Экспорт ''{z}/{x}/{y}.{ext}.tile'' | [[http://www.sasgis.org/mantis/view.php?id=884|Тикет 884]]. Не то же самое что "OsmAnd (SQLite3)" ''*.sqlitedb'' ([[http://www.sasgis.org/mantis/view.php?id=3577|тикет 3577]]) | | ||
- | | 45 | Tile Map Service | ''cache_tms/ /{z}/{x}/{-y}.{ext}'' | [[http://www.sasgis.org/mantis/view.php?id=2848|Тикет 2848]]. Тип кеша известен как [[https://wiki.osgeo.org/wiki/Tile_Map_Service_Specification|TMS (спецификация osgeo.org)]]. [[https://wiki.openstreetmap.org/wiki/TMS|OSM Wiki]]. | | + | | 45 | [[https://wiki.openstreetmap.org/wiki/TMS|Tile Map Service]] (TMS) | ''cache_tms/ /{z}/{x}/{-y}.{ext}'' | [[http://www.sasgis.org/mantis/view.php?id=2848|Тикет 2848]]. ([[https://wiki.osgeo.org/wiki/Tile_Map_Service_Specification|спецификация osgeo.org)]]. | |
| 5 | Google Earth | ''cache_ge/'' | | | 5 | Google Earth | ''cache_ge/'' | | ||
| 51 | GoogleEarth Terrain | | | 51 | GoogleEarth Terrain | | ||
- | | 6 | BerkeleyDB | ''cache_db/'' | [[https://ru.wikipedia.org/wiki/Berkeley_DB|Wikipedia]] | | + | | 6 | [[https://ru.wikipedia.org/wiki/Berkeley_DB|BerkeleyDB]] | ''cache_db/'' | | |
| 61 | BerkeleyDB (Versioned) | | | 61 | BerkeleyDB (Versioned) | | ||
| 7 | DBMS (СУБД) | | | 7 | DBMS (СУБД) | | ||
| 71 | SQLite3 | ''cache_sqlite/ /z{z+1}/0/0/0.0.sqlitedb'' | [[http://www.sasgis.org/mantis/view.php?id=1376#c10961|Тикет 1376]]. Создаётся несколько баз SQLite. | | | 71 | SQLite3 | ''cache_sqlite/ /z{z+1}/0/0/0.0.sqlitedb'' | [[http://www.sasgis.org/mantis/view.php?id=1376#c10961|Тикет 1376]]. Создаётся несколько баз SQLite. | | ||
- | | 72 | MBTiles | Экспорт ''*.mbtiles'' | [[http://www.sasgis.org/mantis/view.php?id=1376|Тикет 1376]], [[https://wiki.openstreetmap.org/wiki/MBTiles|OSM wiki]]. Формат основан на SQLite, но так ограничен, что пригоден только для экспорта. | | + | | 72 | [[https://wiki.openstreetmap.org/wiki/MBTiles|MBTiles]] | Экспорт ''*.mbtiles'' | [[http://www.sasgis.org/mantis/view.php?id=1376|Тикет 1376]], ([[https://github.com/mapbox/mbtiles-spec|спецификация MapBox]]). Используется одна база SQLite, но формат так ограничен, что пригоден только для экспорта. | |
| 8 | GeoCacher | | | 8 | GeoCacher | | ||
| 9 | RAM (на диск не записываются) | | [[http://www.sasgis.org/mantis/view.php?id=1755|Тикет 1755]] | | | 9 | RAM (на диск не записываются) | | [[http://www.sasgis.org/mantis/view.php?id=1755|Тикет 1755]] | | ||
Строка 99: | Строка 99: | ||
* **MemCacheCapacity** - количество тайлов кэшируемых в память. По-умолчанию = 100 | * **MemCacheCapacity** - количество тайлов кэшируемых в память. По-умолчанию = 100 | ||
* **MemCacheTTL** - время жизни тайлов (в миллисекундах), кэшируемых в память. По-умолчанию = 60000 мс. (1 мин) | * **MemCacheTTL** - время жизни тайлов (в миллисекундах), кэшируемых в память. По-умолчанию = 60000 мс. (1 мин) | ||
- | * **MemCacheClearStrategy** - стратегия очистки (по TTL) кэшируемых в память тайлов. Принимает значения: 0 - удалять ВСЕ тайлы из RAM-кэша, если истёк TTL у самого СТАРОГО тайла; 1 - удалять ВСЕ тайлы из RAM-кэша, если истёк TTL у самого МОЛОДОГО тайла; 2 - удалять только те тайлы, у которых истёк TTL. По-умолчанию включён режим 1. | + | * **MemCacheClearStrategy** - стратегия очистки (по TTL) кэшируемых в память тайлов. Принимает значения: |
+ | * 0 - удалять ВСЕ тайлы из RAM-кэша, если истёк TTL у самого СТАРОГО тайла; | ||
+ | * 1 - удалять ВСЕ тайлы из RAM-кэша, если истёк TTL у самого МОЛОДОГО тайла (включён по-умолчанию); | ||
+ | * 2 - удалять только те тайлы, у которых истёк TTL; | ||
+ | * 3 - НЕ удалять тайлы по TTL. | ||
* **RestartDownloadOnMemCacheTTL** - автоматически перезакачивать тайлы в пределах видимой области экрана при очистке RAM-кэша (работает только если UseMemCache=1). По-умолчанию отключено. | * **RestartDownloadOnMemCacheTTL** - автоматически перезакачивать тайлы в пределах видимой области экрана при очистке RAM-кэша (работает только если UseMemCache=1). По-умолчанию отключено. | ||
* **License=©** - текст лицензии, который будет выводиться в левом верхнем углу карты. Требуется для соблюдения условий распространения некоторых карт. | * **License=©** - текст лицензии, который будет выводиться в левом верхнем углу карты. Требуется для соблюдения условий распространения некоторых карт. | ||
Строка 140: | Строка 144: | ||
* **FillColor** — цвет заливки полигона по-умолчанию | * **FillColor** — цвет заливки полигона по-умолчанию | ||
* **IsForceFillColor** — если равно 1 (это значение по-умолчанию), то будет принудительно использовать цвет из **FillColor**, даже если парсер смог считать настройки из параметров полигона | * **IsForceFillColor** — если равно 1 (это значение по-умолчанию), то будет принудительно использовать цвет из **FillColor**, даже если парсер смог считать настройки из параметров полигона | ||
- | |||
- | |||
- | Некоторые из параметров карты могут быть изменены внутри программы без редактирования файла ''params.txt''. Для этого нужно зайти в //Параметры->Параметры карты// или нажать //Ctrl+Alt+P//. Пользовательские изменения настроек карт сохраняются в файле ''Maps/maps.ini''. | ||
- | |||
- | |||
- | ===== GetUrlScript.txt ===== | ||
- | |||
- | Файл **[[Описание Паскаль скриптов|GetUrlScript.txt]]** содержит скрипт, формирующий полные адреса ссылок на тайлы данной карты. Скрипты пишутся на обычном Pascal. | ||
- | |||
- | Основными параметрами [[тайл|тайла]] являются масштаб и координаты по осям ''x'' и ''y''. Масштаб обозначается переменной ''GetZ'' (начинается с единицы), координаты по осям ''x'' и ''y'' - соответственно переменными ''GetX'' и ''GetY''. Эти переменные привязаны к [[Тайл|тайловой сетке]], принятой для [[maps:Google Maps|Google Maps]]. | ||
- | |||
- | ===== info.txt ===== | ||
- | |||
- | Файл **info.txt** содержит текстовую информацию о карте. Используется синтаксис HTML (в частности, абзацы надо разделять тегом <BR>). | ||
- | Также возможен вывод графических файлов (например, легенды карты), через тег ''<img src=”path\to\image.bmp”/>''. Ссылаться можно в т.ч. на изображения в папке zmp. | ||