SASGIS

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

SAS.Wiki

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

Инструменты пользователя

Инструменты сайта


zmp

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

zmp [27/05/2023 00:09]
radioxoma Ссылка на конкретный пост с комментариями
zmp [05/07/2023 09:20] (текущий)
138.199.27.248 MemCacheClearStrategy
Строка 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  | По умолчанию ​                 |+| 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|Тикет 1376]] | +| 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#c10961|Тикет 1376]], [[https://wiki.openstreetmap.org/wiki/MBTiles|OSM wiki]] |+| 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.