Это старая версия документа.


WebGIS

В Wialon Local включен стандартный сервер WebGIS. По умолчанию вся адресная информация, задействованная при мониторинге объектов и в отчетах, берется именно с него.

WebGIS работает с файлами в формате AVD. Файлы такого формата могут быть созданы из других векторных форматов: MP, MapInfo, ESRI Shape, OSM (OpenStreetMap). При этом исходная карта должна быть в системе координат WGS-84 (в градусах).

Предварительно исходные карты в поддержанном векторном формате необходимо загрузить на сервер. Файлы исходных карт должны подаваться в виде архива данных, включающего в том числе набор конфигурационных файлов. В зависимости от формата исходной карты в архив включается определенный набор файлов. Для успешной распаковки на сервере архив не должен содержать вложенных папок.

Параметры компиляции

Имя карты (Map name)
Имя получаемой карты, например, название города, для которого создается карта.

Тег карты (Map tag)
Пометка для карты (город, страна и т. п.). Может использоваться как для поиска, так и в качестве фильтра для рисования.

Приоритет (Priority)
Приоритет карты. По умолчанию — 100. Бóльший приоритет означает более раннюю отрисовку карты. Карты с меньшим приоритетом рисуются позже и находятся выше карт с бóльшим приоритетом.

Мин. уровень (Min. level)
Минимальный желаемый уровень, на котором рисовать карту (0-16).

Макс. уровень (Max. level)
Максимальный желаемый уровень, на котором рисовать карту (0-16).

Адресный поиск (Add search)
Добавить в карту информацию для поиска.

Проверять регистр (Capital letters)
Учитывать регистр букв (прописные/строчные) в МР-файле адресов (городов, регионов, стран).

Очистить подложку (Clear background)
Не рисует карты с большим приоритетом, т. е. те карты, которые находятся в нижних слоях. При наложении участков карт рисуется та, которая находится на самом верху (с большей детализацией), а перекрытые участки нижних карт не обрабатываются. В данном случае подложка карты будет зарисована белым цветом. Эту опцию рекомендуется использовать.

Без отображения (Skip render)
Не добавлять в файл информацию по отрисовке карты (будет использоваться только адресная информация карты).

Ограничить доступ (Skip default render)
Не добавлять в файл информацию по отрисовке карты по умолчанию. Отображение карты будет доступно только для тарифных планов с соответствующими тегами карт.

Отключить адреса (Skip addresses)
Не добавлять в файл информацию для обратного геокодирования (определение адреса по координатам) на карте (будет использоваться только для рисования).

Создание карты из польского формата (MP)

Для создания карты из файлов в польском формате используются конфигурационный XML файл. Для загрузки на сервер формируется архив, содержащий исходную карту в формате MP и конфигурационный файл XML.

Стандартный конфигурационный файл преобразований типов MP файла в типы AVD файла (pfm.xml) можно скачать. Пользователь может сам создать конфигурационный файл в соответствии со своими требованиями.

Пример:

<pfm>
<feature type="0x0001" shape="PL" avd_type="1" max_level="2" name="Односторонняя дорога, с разделёнными зоной безопасности направлениями движения, с разрешённой скоростью более 90 км" use_addr="1" is_street="1"/>
 
<feature type="0x0002" shape="PL" avd_type="3" max_level="2" name="Важная потоковая трасса (федеральные). Напряжённый трафик" use_addr="1" is_street="1"/>
 
<feature type="0x0003" shape="PL" avd_type="5" max_level="2" name="Дорога, соединяющая крупные города" use_addr="1" is_street="1"/>
 
<feature type="0x0004" shape="PL" avd_type="7" max_level="2" name="Дорога, соединяющая мелкие города с хорошим покрытием" use_addr="1" is_street="1"/>
 
<feature type="0x0000" shape="PL" avd_type="9" max_level="2" name="Просто дорога от города до деревни" use_addr="1" is_street="1"/>
<feature type="0x000a" shape="PL" avd_type="11" max_level="1" name="Дорога с некачественным покрытием" use_addr="1" is_street="1"/>
<feature type="0x0042" shape="PL" avd_type="12" max_level="1" name="Дорога без покрытия (официальная)" use_addr="1"/>
 
<feature type="0x3008" shape="POI" avd_type="59" max_level="0" name="Пожарная станция" use_addr="1" is_house="1"/>
<feature type="0xf001" shape="POI" avd_type="60" max_level="0" name="Автовокзал, автостанция" use_addr="1" is_house="1"/>
<feature type="0x2f06" shape="POI" avd_type="61" max_level="0" name="Банк" use_addr="1" is_house="1"/>
<feature type="0x2b00" shape="POI" avd_type="62" max_level="0" name="Отель, гостиница" use_addr="1" is_house="1"/>
</pfm>

В конфигурационном файле XML используются следующие параметры:

use_addr
Использовать элемент в адресном поиске по координатам.

is_city
Использовать элемент при поиске населенного пункта по имени (это есть город).

is_street
Использовать элемент при поиске улицы по имени (это есть улица), к этому элементу может осуществляться привязка при движении объекта по дороге.

is_house
Использовать элемент при поиске дома по имени или номеру (это есть дом).

is_road
Это дорога, к ней может осуществляться привязка при движении объекта по дороге.

type
Исходный тип из МР файла (польского формата).

shape:
PG – полигон, PL – полилиния, POI – точка.

avd_type
Конечный тип в AVD файле (0-255).

max_level
Уровень, на котором будут храниться данные карты в формате avd. Уровни привязаны к метражу: уровень 0 — от 10 м до 250 м, уровень 1 — от 250 м до 20 км, уровень 3 — от 20 км до 500 км).

name
Имя объекта, области, точки, линии, т.е. пользовательская пометка.

:!: Внимание!
Для корректного хранения надписей на карте необходимо выполнить одно из двух условий:

  • чтобы исходный MP файл был в кодировке Win 1251 и в заголовке (IMG ID) была прописана строка CodePage=1251;
  • чтобы исходный MP файл был в кодировке UTF-8 и в заголовке (IMG ID) была прописана строка CodePage=1252 или прочим значением, отличным от 1251.

Создание карты из формата OSM

Для создания карты из файлов в OSM формате используются конфигурационный XML файл и allCountries.txt. Для загрузки на сервер формируется архив, содержащий исходную карту в формате OSM, конфигурационный файл XML и allCountries.txt.

allCountries.txt — вспомогательный файл для адресной привязки. Документ содержит список городов мира с указанием численности населения, на основе которой по определенному алгоритму рассчитывается приблизительный радиус города.

osm.xml — конфигурационный файл преобразований типов OSM файла в стандартные типы AVD файла.

Стандартный конфигурационный файл преобразований типов OSM файла в типы AVD файла (osm.xml) и allCountries.txt можно скачать http://distro.gurtam.com/maps_cfg/.

Создание карты из прочих векторных форматов

Для создания карт из прочих векторных форматов, таких как MapInfo, ESRI shapefile, на сервер необходимо загрузить архив, содержащий исходные слои карты в соответствующем формате, и конфигурационный файл XML.

XML файл должен быть в кодировке UTF-8 без BOM:

<conv name="cheljabinskaja" encoding="utf8">
	<layer file="chel-roads-l.shp">
                 <features max_level="1" name="$NAME" use_addr="1" is_street="1" region="$ADDR_REGIO" street="$NAME">
                        <mod filter="(highway ='bridleway') or (highway ='living_street')" type="14"/>
			<mod filter="(highway ='path') or (highway ='steps')" type="16"/>
		</features>
	</layer>
	<layer file="chel-buildings-a.shp">
		<features type="210" max_level="1" name= "$ADDR_HOUSE" is_house="1" region="$ADDR_REGIO" street="$ADDR_STREET" house="$ADDR_HOUSE" use_addr="1"/>
	</layer>		
	<layer file="chel-city-p.shp">
		<features type="64" max_level="2" name="$NAME" address="$NAME">
			<mod filter="PLACE ='village'" type="66" is_city="1" region="$ADDR_REGIO" max_level="1" name="$NAME" address="$NAME"/>
			<mod filter="PLACE = 'town'" type="65" is_city="1" region="$ADDR_REGIO" max_level="1" name="$NAME" address="$NAME"/>
			<mod filter="PLACE = 'city'" type="64" is_city="1" region="$ADDR_REGIO" max_level="1" name="$NAME" address="$NAME"/>
		</features>
	</layer>
	<layer file="chel-landuse-a.shp">
		<features type="166" max_level="1" name="$NAME">
			<mod filter="LANDUSE ='Military'" type="173" max_level="1" name="$NAME"/>
			<mod filter="LANDUSE ='cemetery'" type="147" max_level="1" name="$NAME"/>
			<mod filter="LANDUSE ='commercial'" type="151" max_level="1" name="$NAME"/>
			<mod filter="LANDUSE ='forest'" type="165" max_level="1" name="$NAME"/>
			<mod filter="LANDUSE ='nature_reserve'" type="184" max_level="1" name="$NAME"/>
			<mod filter="LANDUSE ='residential'" type="166" max_level="1" name="$NAME"/>
		</features>
	</layer>	
	<layer file="chel-admin-a.shp">
		<features type="0x004a" shape="PG" avd_type="0" max_level="0"/>
	</layer>
</conv>

Файл начинается (заканчивается) тегом conv. В этом теге можно использовать следующие ключи: name — название карты, encoding — кодировка файлов для конвертации.

Основной частью для конвертации карты является описание слоев, которые необходимо использовать для получения данных. Тег layer позволяет описать каждый слой в отдельности, а также, если предусмотрены различные атрибуты, преобразовывать карту в соответствии с ними.

Ключ file используется для указания файла слоя.

Далее следует указать свойства слоя features. В ключе type необходимо выставить значение типа элемента из карты формата *.avd (можно посмотреть в pfm.xml или osm.xml). Параметр name отвечает за отображение каких-либо свойств конвертируемого объекта. Это свойство будет использовано при отображении объекта на карте для его подписи. Здесь необходимо использовать только английские буквы и после знака доллара «$». В приведенном выше примере имена используемых полей можно найти в указанных там файлах, т.е. в *.shp. Если в файле используются символы, отличные от латинских, то он будет конвертирован с ошибками или вообще не будет конвертирован. Если Вы хотите конвертировать такие файлы, то измените имена полей на латинские (английские).

Необходимо также указать уровень, на котором будут располагаться данные в файле карты. За это отвечает параметр max_level. В зависимости от того, какую карту Вы хотите получить, Вы можете сами ставить параметры от 0 до 2, или поставить такие же параметры как в pfm.xml или osm.xml.

Дополнительно можно использовать следующие параметры:

  • data_type — определяет фильтр по типу объекта. Это может быть полигон (pg), полилиния (pl), точка (poi). Пример: data_type=«pg».
  • address — определяет получение адреса по параметрам, указанным в значении.
  • region — определяет название региона по указанному значению. Пример: region=«$Region».
  • street — определяет название улицы по указанному значению. Пример: street=«$st».
  • street_type — определяет тип улицы по указанному значению. Пример: street_type=«$sts_type».
  • house — определяет номер дома по указанному значению. Пример: house=«$number».
  • is_city — определяет, является ли этот объект городом. Если не является, указывать не надо. Пример: is_city=«1».
  • is_street — определяет, является ли этот объект улицей. Если не является, указывать не надо. Пример: is_street=«1».
  • is_house — определяет, является ли этот объект домом. Если не является, указывать не надо. Пример: is_house=«1».

Знак доллара «$» в кавычках обозначает, что буквы следующие за этим знаком, нужно использовать как переменную и подставить вместо них значение этой переменной. Чтобы использовать обычный текст вместе с какой-либо переменной, необходимо этот текст выделить с двух сторон знаком «|». Также можно использовать знак решетки (#), который позволит использовать данные из другого слоя. После «#» указывается поле, из которого следует взять значение, потом ставится точка (.). Второе значение показывает, какой слой (файл без расширения) использовать для получения данных. После этого опять ставится точка. Третий параметр говорит, какое поле из указанного слоя использовать. Четвертый параметр может использоваться, если значение необходимо искать в строковом поле или во множестве значений. Он указывается как поле, по которому фильтровать, знак равно и в одинарных кавычках процент, т.е. использовать первый параметр из этого выражения для поиска.

Пример: пусть есть слой «cities», где есть поля «ID», «Name», «Region»; и есть слой «streets», где есть поля «ID», «City», «CityID», «Name». Тогда для получения названия улицы и города: «$Name|, |#CityID.Cities.Name»; для получения названия города и области при поиске по другому полю: «$Name|, |#City.Cities.Region.Name='%'».

Если Вы заметили, что в файле слоя есть объекты с разными типами и Вы захотели их отобразить разными типами, Вам необходимо использовать тег mod. Здесь следует указать условия фильтрации и тип объекта, который будет получен в конце конвертации. В параметре filter Вам необходимо задать условие как в SQL запросе. Параметр type выставить точно, как описано выше.

В одном layer может быть сколько угодно features. В одном features может быть сколько угодно mod.

Если карта не компилируется, попробуйте открыть XML какой-нибудь другой программой, например, Internet Explorer (если в теле файла будут ошибки, то данная программа отобразит только кусок файла без ошибок и остановится на месте ошибки — проверка будет осуществлена только на наличие открывающих и закрывающих тегов). Также проверьте правильность написания названий слоев карты в ключе file.

Используйте комментарии для того, чтобы потом было легче редактировать и использовать этот файл.

См. также «Спецификация формата».

Follow us on Facebook Gurtam Wialon Twitter Gurtam Wialon info@gurtam.com   |   Copyright © 2002-2019 Gurtam