Здесь показаны различия между двумя версиями данной страницы.
описания_формата_пользовательских_карт_zmp [25/01/2021 10:09] radioxoma Стиль, объединение текста из статьи zmp |
описания_формата_пользовательских_карт_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=”Полный путь\графический файл”/> или | + | |
- | + | ||
- | <img src=”графический файл”> (если файл находится в zmp). | + | |
- | + |