SAS.Wiki

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

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

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


описания_формата_пользовательских_карт_zmp

Различия

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

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

описания_формата_пользовательских_карт_zmp [25/01/2021 10:18]
radioxoma Markup
описания_формата_пользовательских_карт_zmp [25/01/2021 10:31] (текущий)
radioxoma
Строка 1: Строка 1:
-[[главная|Главная страница]] +#​REDIRECT ​[[zmp]]
- +
-====== Описание формата пользовательских карт ​zmp ====== +
- +
-Каждый картографический сервис в SASPlanet описывается в "​zmp"​. Это zip-архив или папка с расширением ''​.zmp'',​ в которой хранится текстовое описание сервиса в особом формате. Один "​zmp"​ соответствует одной карте и независим от других. Сама аббревиатура является производным от слов: **z**ip **m**a**p**. +
- +
-Готовые zmp распространятся через [[основной_репозиторий|основной]] и [[плюсовой_репозиторий|плюсовой]] репозитории. +
- +
-Коллекция zmp карт располагается в подпапках ''​Maps''​ программы. Изначально в программе использовались только zip-архивы с расширением ''​.zmp'',​ затем появилась возможность хранить описание в неархивированных папках. Каждый zmp может содержать следующие файлы и папки:​ +
- +
-  *  **params.txt** (обязательно) — параметры карты;​ +
-  *  **[[описание_паскаль_скриптов|GetUrlScript.txt]]** (обязательно,​ если не используется [[простой_пример_с_плейсхолдерами|упрощенное добавление карт]]) — скрипт,​ отвечающий за формирование ссылки на тайл карты и пользовательских заголовков;​ +
-  *  **info.txt** — словесное описание карты в HTML; +
-  * графические файлы, ссылка на которые размещена в info.txt (например,​ легенда карты);​ +
-  * **EmptyTiles** — директория,​ содержащая образцы тайлов,​ которые не будут скачиваться с сервера (например,​ полностью прозрачные тайлы). В некоторых случаях сервер отдаёт «пустышки» в формате,​ отличном от формата обычных тайлов,​ например,​ обычные тайлы — jpg, а «пустышка» — png. SAS.Планета же переписывает все принятые тайлы в формат,​ указанный в параметре Ext (см. ниже). В таких случаях в качестве образцов необходимо использовать исходные файлы, присланные сервером,​ а не брать их из кэша программы. +
-  * **18.bmp** — файл иконки,​ отображаемой в меню программы (BMP, 18×18 pix, цвет фона RGB(255,​0,​255));​ +
-  *  **24.bmp** — файл иконки,​ отображаемой на панели инструментов (BMP, 24×24 pix, цвет фона RGB(255,​0,​255)). +
-В последних версиях программы вместо 18.bmp и 24.bmp можно использовать один файл с именем 24.bmp. Содержимое этого файла — изображение произвольного размера в формате BMP, PNG, ICO и других (но с расширением BMP). +
- +
-===== params.txt ===== +
- +
-Параметры файла **params.txt**:​ +
- +
-Раздел **[PARAMS]** +
- +
-  *  **asLayer** — если равно 1, карта используется как слой, накладываемый поверх основной карты. +
-  *  **pnum** — порядковый номер карты в меню. +
-  *  **GUID** — уникальный идентификационный номер карты (генераторы GUID можно найти в Интернете,​ например [[http://​www.guidgen.com/​|тут]]). +
-  *  **ParentSubMenu** — название пункта родительского меню для данной карты на русском языке. +
-  *  **ParentSubMenu_en** — название пункта родительского меню для данной карты на английском языке. +
-  *  **ParentSubMenu_uk** — название пункта родительского меню для данной карты на украинском языке. +
-     ​* ​ существует возможность указать иерархическое меню разделив пункты символом "​\" ​ (например ParentSubMenu=Google\Планеты) +
-  *  **name** — имя карты на русском языке. +
-  *  **name_en** — имя карты на английском языке. +
-  *  **name_uk** — имя карты на украинском языке. +
-  *  **CacheType** — тип кэша, в который будут записываться тайлы данной карты:​ +
-    * 0 — по умолчанию +
-    * 1  — GoogleMV  +
-    * 2  — SAS.Planet  +
-    * 3  — EarthSlicer 1.95  +
-    * 4  — GlobalMapper Tiles (GMT) ''​cache_gmt/​z{z}/​{x}/​{y}{ext}''​ +
-    * 41 — GlobalMapper Aux +
-    * 42 — GlobalMapper Bing +
-    * 43 — Mobile Atlas Creator (MOBAC) ''​cache_ma/​{z}/​{x}/​{y}{ext}''​ +
-    * 44 — OsmAnd+ Tiles +
-    * 45 — Tile Map Service (TMS) ''​cache_tms/​{z}/​{x}/​{-y}{ext}''​ +
-    * 5  — Google Earth +
-    * 51 — GoogleEarth Terrain  +
-    * 6  — BerkeleyDB +
-    * 61 — BerkeleyDB (Versioned)  +
-    * 7  — DBMS (СУБД)  +
-    * 71 — SQLite3  +
-    * 8  — GeoCacher  +
-    * 9  — RAM (на диск не записываются) +
-  *  **DefURLBase** — неизменная часть адреса ссылки на тайлы карты. Или шаблон URL адреса в случае [[простой_пример_с_плейсхолдерами|упрощенного добавления карт]]. +
-  *  **[[epsg_код_проекции|projection]]** — проекция карты. 1 — Меркатор на сфероид,​ 2 — Меркатор на эллипсоид,​ 3 — широта/​долгота. +
-  *  **[[epsg_код_проекции|sradiusa]]** — радиус большой полуоси эллипсоида. +
-  *  **[[epsg_код_проекции|sradiusb]]** — радиус меньшей полуоси эллипсоида. +
-  * **[[epsg_код_проекции|EPSG]]** — код проекции карты. +
-  *  **NameInCache** — имя папки в кэше, в которую будут записываться тайлы карты. +
-  *  **separator** — разделитель в виде горизонтальной черты, отображаемый в меню после данной карты (1 — отображать,​ 0 — не отображать). +
-  *  **Ext** — расширение тайла (.jpg, .png, .bmp, .gif). Задаёт формат,​ в котором принудительно будут сохраняться карты, если ContentType другой.  +
-  *  **UseDwn** — если равно 1, то скачивать тайлы карты разрешено.  +
-  *  **Sleep** — величина паузы между загрузками отдельных тайлов в миллисекундах. +
-  *  **DefHotKey** — сочетание горячих клавиш для данной карты.  +
-  *  **ContentType** — тип загружаемых данных (например,​ image/jpeg, image/png). Можно использовать одновременно несколько типов. +
-  *  **DefaultContentType** — тип, который будет использоваться,​ если сервер не вернул никакого типа или если стоит игнорирование типа, возвращаемого сервером.  +
-  *  **IgnoreContentType** — игнорирование типа, возвращаемого сервером. +
-  *  **DetectContentType** - если равно 1, то после загрузки тайла будет выполнятся анализ его содержимого и коррекция поля Content-Type в хидерах ответа сервера  +
-  *  **MimeTypeSubst** — подстановка типа загружаемых данных (например,​ «image/​png8bit=image/​png»). +
-  *  **TILERLEFT,​ TILERRIGHT, TILERTOP, TILERBOTTOM** — параметры для обрезки скачиваемых тайлов соответственно слева, справа,​ сверху и снизу. Если получившийся прямоугольник не совпадает с квадратом 256×256, он ещё и растягивается или сжимается до этого размера. +
-  *  **UsePreloadPage** — если равно 1, использовать предварительно загружаемую страницу (обязательно следует указать её адрес). +
-  *  **PreloadPage** — адрес предварительно загружаемой страницы. +
-  *  **RequestHead** — пользовательские HTTP-заголовки (headers), передаваемые на сервер. Поля должны отделяться символами \r\n (пример:​ RequestHead=Referer:​ maps.kosmosnimki.ru\r\nConnection:​ Keep-Alive). +
-  *  **Version** — версия тайлов,​ соответствует переменной Version в GetUrlScript.txt. +
-  *  **MaxConnectToServerCount** — максимальное число потоков. Значение по умолчанию устанавливается в секции [ZmpDefaultParams] файла SASPlanet.ini +
-  *  **IsUseDownloaderInScript=1 ** - использование скачивания внутри скрипта [[http://​sasgis.org/​mantis/​view.php?​id=596|добавить отсюда]] +
-  *  **UseMemCache** - использовать кэш в памяти (при CacheType=9 (RAM-кэш) отключение данной опции приведёт к ошибке),​ включено по-умолчанию +
-  *  **MemCacheCapacity** - количество тайлов кэшируемых в память. По-умолчанию = 100 +
-  *  **MemCacheTTL** - время жизни тайлов (в миллисекундах),​ кэшируемых в память. По-умолчанию = 60000 мс. (1 мин.) +
-  *  **MemCacheClearStrategy** - стратегия очистки (по TTL) кэшируемых в память тайлов. Принимает значения:​ 0 - удалять ВСЕ тайлы из мем-кэша,​ если истёк TTL у самого СТАРОГО тайла; 1 - удалять ВСЕ тайлы из мем-кэша,​ если истёк TTL у самого МОЛОДОГО тайла; 2 - удалять только те тайлы, у которых истёк TTL. По-умолчанию включён режим 1. +
-  *  **RestartDownloadOnMemCacheTTL** - автоматически перезакачивать тайлы в пределах видимой области экрана при очистке мем-кэша (работает только если UseMemCache=1). По-умолчанию отключено. +
-  * **License=©** - текст лицензии,​ который будет выводиться в левом верхнем углу карты. Требуется для соблюдения условий распространения некоторых карт.  +
-  * **LayerZOrder** -  порядок отображения слоёв, по умолчанию 0. Слои с большим значением будут отображаться поверх слоев с меньшим значением +
-  * **IsReadOnly=1** - использовать кэш в режиме "​Только чтение"​ +
- +
-  * **IteratorSubRectSize** -  размеры по вертикали и горизонтали,​ измеряемые в стандартных тайлах (256х256 пикселей) при скачивании так называемых "​мегатайлов",​ то есть тайлов с размерами более чем 256х256 пикселей. (Только в SACS) +
-  * **IteratorSubRectAlign** - если 0 - всё по умолчанию,​ если не 0 (1 или 2), то осуществляется точная привязка к размеру мегатайла. Если же не 1, а 2 - то будет дополнительно увеличен размер просматриваемой области,​ чтобы возможно было скачать даже, например,​ один левый верхний тайл в режиме кэш+интернет при сдвиге окна влево и вверх. Толкование малопонятное,​ интересующимся смотреть [[http://​www.sasgis.org/​mantis/​view.php?​id=1659|здесь]].(Только в SACS) +
-  +
- +
-[[Пример_Порезки_на_тайлы|Порезка на тайлы]] +
-  * **CutCountX=0** (число кусков по X, необязательный параметр) +
-  * **CutCountY=0** (соответственно по Y) +
-  * **CutSizeX=0** (размер куска по X, если не задано — берётся 256 из параметров) +
-  * **CutSizeY=0** (соответственно по Y) +
-  * **CutTileX=0** (положение запрошенного тайла в общей картинке по X) +
-  * **CutTileY=0** (соответственно по Y) +
-  * ** CutToSkip=(0,​0),​(0,​-1)** ​ перечень тайлов которые нужно пропускать(относительно CutTileX,​CutTileY). +
- +
- +
- +
- +
- +
- +
- +
- +
-Раздел **[ViewInfo]** +
- +
-  * **[[epsg_код_проекции|EPSG]]** — код проекции карты при выводе на экран. +
- +
-В ночных версиях появилась возможность использовать более продвинутый хоть и медленный парсер kml, c поддержкой чтения оформления меток, линий и полигонов или принудительно задать свои настройки для конкретного zmp. Для того что бы включить и настроить эти функции используются следующие разделы:​ +
- +
-Раздел **[PARAMS_Vector]** +
-  *  **UseAppearance** — если равно 1, то включается использование оформления из zmp и загруженных векторных тайлов +
- +
-Раздел **[PARAMS_Vector_Point]** +
-Настройки оформления точек. +
-  *  **IconName** —  имя иконки по-умолчанию +
-  *  **IsForceIconName** ​ — если равно 1 (это значение по-умолчанию),​ то будет принудительно использовать заданную в параметре **IconName**,​ даже если парсер смог считать имя иконки из праметров точки +
-  *  **IconSize** — размер иконки по-умолчанию +
-  *  **IsForceIconSize** — если равно 1 (это значение по-умолчанию),​ то будет принудительно использовать размер иконки заданный в **IconSize**,​ даже если парсер смог считать размер из праметров точки +
- +
- +
-Раздел **[PARAMS_Vector_Line]** +
-Настройки оформления линий +
-  *  **LineColor** —  цвет линии по-умолчанию +
-  *  **IsForceLineColor** ​ — если равно 1 (это значение по-умолчанию),​ то будет принудительно использовать цвет из **LineColor**,​ даже если парсер смог считать настройки из параметров линии +
-  *  **LineWidth** — толщина линии по-умолчанию +
-  *  **IsForceLineWidth** — если равно 1 (это значение по-умолчанию),​ то будет принудительно использовать толщину линии заданную в **LineWidth**,​ даже если парсер смог считать настройки из параметров линии +
- +
-Раздел **[PARAMS_Vector_Poly]** +
-Настройки оформления полигонов +
-  *  **LineColor** —  цвет границы полигона по-умолчанию +
-  *  **IsForceLineColor** ​ — если равно 1 (это значение по-умолчанию),​ то будет принудительно использовать цвет из **LineColor**,​ даже если парсер смог считать настройки из параметров полигона +
-  *  **LineWidth** — толщина границы полигона по-умолчанию +
-  *  **IsForceLineWidth** — если равно 1 (это значение по-умолчанию),​ то будет принудительно использовать толщину линии заданную в **LineWidth**,​ даже если парсер смог считать настройки из параметров полигона +
-  *  **FillColor** —  цвет заливки полигона по-умолчанию +
-  *  **IsForceFillColor** ​ — если равно 1 (это значение по-умолчанию),​ то будет принудительно использовать цвет из **FillColor**,​ даже если парсер смог считать настройки из параметров полигона +
- +
- +
-Некоторые из параметров карты могут быть изменены внутри программы без редактирования файла params.txt. Для этого нужно зайти в //​Параметры->​Параметры карты//​ или нажать //​Ctrl+Alt+P//​. Пользовательские изменения настроек карт сохраняются в файле maps/​maps.ini. +
- +
-===== GetUrlScript.txt ===== +
- +
-Файл **[[описание_паскаль_скриптов|GetUrlScript.txt]]** содержит скрипт,​ формирующий полные адреса ссылок на файлы данной карты. Скрипты пишутся на обычном Pascal. +
- +
-===== info.txt ===== +
- +
-Файл **info.txt** содержит текстовую информацию о карте. Используется синтаксис HTML (в частности,​ абзацы надо разделять тегом <​BR>​). +
-Также возможен вывод графических файлов (например,​ легенды карты),​ через тег ''<​img src=”path\to\image.bmp”/>''​. Ссылаться можно на удалённые изображения и изображения в папке zmp.+