Правительство Санкт-Петербурга
Государственная административно-техническая инспекция
Увеличить   Уменьшить   Изменить контрастность   Сбросить все        для слабовидящих
ГАТИ - Описание формата .PSP PDF Печать E-mail


 Формат «цифрового» обозначения территорий – протокол мобильного обмена для ГИС (.PSP)



Заголовок:
2 байта – «T2» (для 2D) или «T3» (для 3D)
1 байт [T] – точность (0/1/2 – число знаков после запятой)
1 байт [B] – размер блоков координат (для Т2: «6» – по 6 байтов; «4» – по 4 байта) (для Т3: «6» – по 8 байтов; «4» – по 6 байта (добавляются 2 байта координаты Z))
6 байт – смещение по X и Y (формат смещения см. ниже) (точность смещения всегда = 0 знаков после запятой. Смещение Z всегда 0)

Описание территории:

Состоит из блоков координат объектов. Каждый блок завершается байтом #156.
Блок делится на группы;
для T2 по 6 байт – это 2 координаты
(6 байт = 3 байта – X; 3 байта – Y)
для T2 по 4 байт – это 2 координаты
(4 байт = 2 байта – X; 2 байта – Y)
для T3 по 8 байт – это 3 координаты.
(8 байт = 3 байта –X; 3 байта – Y; 2 байта – Z).
для T3 по 6 байт – это 3 координаты.
(6 байт = 2 байта –X; 2 байта – Y; 2 байта – Z).

Если блок состоит из одной группы, то это точка.
Если групп в блоке более одной, то это полилиния.
Если размер блока меньше 4-х байт, то это префикс
Если блок завершается терминатором #156 #156, то это полигон.
В группе используются байты с кодами от #33 до #155.

Преобразование из Х
j:= int( X * (10 ^ [T]))
X1:= int( j / 15129 ) + 33
j:= ( j mod 15129)
X2:= int( j / 123 ) + 33
X3:= ( j mod 123) + 33
Преобразование из Y и Z
аналогично X

 
Преобразование ХХХ и YYY координаты:

((X1-33)*15129+(X2-33)*123+(X3-33)) / (10^[T])
((Y1-33)*15129+(Y2-33)*123+(Y3-33)) / (10^[T])
Преобразование Z координаты:
((Z-33)*123+(Z-33)) / (10^[T])

Структура Префиксов для внедрения объектов
nK  #156  nP  #156
Где:    nK – от 1 до 3-х байт – код типа объекта;
nP – от 0 до N байт – необходимые параметры

Преобразование В штрих-код
4 байта Заголовка не изменяется.
Остальная часть побайтно перекодируется:
Байты с кодами от #33 до #125 переносятся без изменений.
Байты с кодами от #126 до #137 переносятся как К-125
Байты с кодами от #138 до #156 переносятся как К-124

Преобразование ИЗ штрих-кода
4 байта Заголовка не изменяется.
Остальная часть побайтно перекодируется:
Байты с кодами от #33 до #125 переносятся без изменений.
Байты с кодами от #1 до #12 переносятся как К+125
Байты с кодами от #14 до #32 переносятся как К+124

Предпочтительные параметры кодирования

 

Менее 150 метров

До 1500 метров

До 15000 метров

Более 15000 метров

Менее 150 точек

Т224

Т214 / T226

Т216 / Т204

Т216

Более 150 точек

Т224

Т214

Т204

----

Объекты (2D), включаемые посредством Префиксов
(размеры в скобках даны для блоков по 4 байта, а без скобок – для блоков по 6 байт)


Объект

Префикс

Параметры

Размер (байт)

Код

Размер (байт)

Описание

Окружность

1

#33

1, 2

6 (4)

X, Y – координаты центра (учитывается смещение)

3

3

Диаметр (с точностью, определенной в заголовке)

Дуга в полилинии

1

#34

1, 2

6 (4)

X, Y – координаты начала (учитывается смещение)

3

3

Показатель выпуклости (от -1 до +1) (умножено на 100000 и добавлено 100000)

4, 5

6 (4)

X, Y – координаты конца (учитывается смещение)

Арка

1

#35

1, 2

6 (4)

X, Y – координаты центра (учитывается смещение)

3

3

Диаметр (с точностью, определенной в заголовке)

4, 5

6

Угол начала и угол конца арки (умножено на 100000)

Текст

1

#36

1, 2

6 (4)

X, Y – координаты точки привязки для текста (учитывается смещение)

3

2

Высота шрифта умноженная на 10

4

3

Угол поворота текста (умножено на 100000 и добавлено 100000)

5

N

Текст Текст. Используются следующие правила перекодировки: Chr(127) – переключение на латиницу. Chr(94) – переключение на кириллицу. На латинице символы не перекодируются. На кириллице ко всем символам до chr(94) добавляется 159, символ chr(95) меняется на пробел, в других случаях добавляется 157

Начало малого блока

1

#37

1, 2

6

X, Y – Смещение начала блока. Внутри блока используем смещения по 2 байта, и точность 2 знака.

3

N

Название блока (этот параметр последний, и потому его размер ограничивается терминатором)

Начало большого блока

1

#44

1, 2

6

X, Y – Смещение начала блока. Внутри блока используем смещения по 3 байта, и точность 2 знака.

3

N

Название блока (этот параметр последний, и потому его размер ограничивается терминатором)

Конец блока

1

#38

 

 

Операндов нет

Название блока (использ. автоматич)

1

#39

 

N

Название блока (этот параметр единственный, и потому его размер ограничивается терминатором)
ЭТОТ префикс генерируется из #37. К 3-му операнду добавляется  #39 (при интерпретации)

Эллипс

1

#40

1, 2

6 (4)

X, Y – координаты центра эллипса

3, 4

6

Размеры большой и малой осей (с точностью в заголовке)

5

3

Угол наклона большой оси (умножено на 100000)

6, 7

6

Угол начала и угол конца эллипса (умножено на 100000)

Цвет линий

1

#41

1

4

RGB – цвет. Устанавливается текущий цвет. Действует до следующей установки, или до конца блока.

Начало составной области (участка области)

1

#42

1

2

Номер участка. Область состоит из отдельных участков. Участок состоит из перечисления элементов. Завершается описание области тегом #43#156#156. Описание участка завершается началом описания следующего участка, или общим терминатором области.

Конец области

1

#43

 

 

Операндов нет

 

 

 

 

 

 

Формат файлов .psp


Размер поля

Содержимое поля

Заголовок PSP

6

Размер Оглавления

До 100

Общее наименование

2

#13 #10

Оглавление (перечень описаний слоёв)
(описание каждого слоя 200 байт)

50

Идентификатор слоя

100

Наименование слоя

1

Точность (0 / 1/ 2)

5

Размер тела слоя

2

Номера частей

1

Флаг наличия частей

1

Флаг использования цвета

38

Резерв

2

#13 #10

Слои
(содержимое слоёв следует друг за другом в соответствии с оглавлением. Каждый слой завершается комбинацией #13#10. Размер каждого слоя указан в оглавлении)

 

 

 
Сейчас на сайте
Сейчас 434 гостей онлайн

                  


Яндекс.Метрика Rambler's Top100