.SHP вариант №
SHP — это расширение файла для одного из основных типов файлов, используемых для представления шейп-файла ESRI. Он представляет геопространственную информацию в виде векторных данных, которые будут использоваться приложениями географических информационных систем (ГИС). Формат был разработан как открытая спецификация для облегчения взаимодействия между ESRI и другими программными продуктами.
Представление данных
Как уже упоминалось, формат шейп-файла описывает геопространственную информацию набора данных в виде векторных объектов. Эти векторные объекты включают в себя:
- точки
- линии
- полигоны
Комбинация этих объектов может представлять практически любые типы фигур, такие как водяные колодцы, границы страны, пространственные точки, течение рек, озера и т. д. Каждый векторный объект может иметь атрибуты, фактически определяющие назначение этого объекта. Например, шейп-файл, содержащий города Лос-Анджелеса, может иметь название города и температуру в качестве атрибутов, что обеспечивает значимое представление пространственных данных.
Связанные файлы
Отдельный файл shp не может использоваться программными приложениями для придания смысла содержащимся в нем данным. Чтобы понять информацию, содержащуюся в таком файле, шейп-файл использует следующие дополнительные обязательные файлы.
*shx файл - индексный файл
- файл dbf — файл dBASE, в котором хранятся все атрибуты фигур в основном файле
- prj файл - хранит информацию о проекте файла
Могут быть и другие необязательные файлы, которые имеют то же имя, что и основной файл.
Спецификации формата файла SHP
Открытые спецификации шейп-файла доступны онлайн в ESRI в виде Технического описания, в котором подробно описана общая структура файла. Информация в основном файле .shp состоит из заголовков и записей. За заголовком файла фиксированной длины следуют записи переменной длины, где каждая запись состоит из заголовка записи фиксированной длины, за которым следует содержимое записи переменной длины.
Заголовок основного файла SHP
Основной заголовок файла начинается с начала файла и имеет длину 100 байт. Организация этого основного заголовка файла вместе с позицией байтов, значением, типом и порядком байтов показана в следующей таблице.
Байты | Поле | Значение | Тип | Порядок байтов |
---|---|---|---|---|
0-3 | Код файла | 9994 | Целое число | Big Endian |
4-23 | Не используется | 0 | Целое число | С обратным порядком байтов |
24-27 | Длина файла | Длина файла | Целое число | Big Endian |
28-31 | Версия | 1000 | Целое число | Маленький порядок байтов |
32-35 | Тип фигуры | Тип фигуры | Целое число | Little Endian |
36-67 | Минимальный ограничивающий прямоугольник | Xmin, Ymin, Xmax и Ymax | double | Little Endian |
68-83 | Ограничивающая рамка | Zmin, Zmax | double | Little Endian |
84-99 | Ограничивающий прямоугольник | Mmin, Mmax | двойной |
Следует отметить, что значение длины файла представляет собой общую длину файла в 16-битных словах, которая также включает пятьдесят 16-битных слов, составляющих заголовок.
Типы фигур
Значения поля типов фигур в приведенной выше таблице следующие:
Значение | Тип фигуры |
---|---|
0 | Нулевая форма |
1 | Точка |
3 | Ломаная |
5 | Многоугольник |
8 | Многоточечный |
11 | ТочкаZ |
13 | ПолиЛайнZ |
15 | МногоугольникZ |
18 | МноготочечныйZ |
21 | ТочкаМ |
23 | ПолиЛайнМ |
25 | МногоугольникM |
28 | МноготочечныйM |
31 | Мультипатч |
Записи данных
За заголовком основного файла следуют записи переменной длины, где каждая запись состоит из заголовка записи фиксированной длины, за которым следует содержимое записи переменной длины.
Заголовок записи
Заголовок записи содержит информацию о номере записи и длине содержимого записи фиксированной длины 8 байт. Организация заголовка записи показана ниже:
Байты | Поле | Значение | Тип | Порядок байтов |
---|---|---|---|---|
0-3 | Номер записи | Номер записи | Целое число | Большой |
4-7 | Длина записи | Длина записи | Целое число | Большой |
Записать содержимое
Содержимое записи шейп-файла состоит из типа формы, за которым следуют геометрические данные для этой формы. Тип фигуры 0 представляет нулевую фигуру, которая не имеет геометрических данных для фигуры. Длина содержимого записи является отражением частей и вершин фигуры. Давайте рассмотрим пример типа Point Shape, чтобы понять, как запись содержит информацию о таком типе формы.
Точка представляет определенное географическое положение в порядке X,Y, где каждая координата представлена значением двойной точности. В следующей таблице показано расположение типа формы Point.
Байты | Тип формы | Значение | Тип | Число | Порядок байтов |
---|---|---|---|---|---|
0-3 | Тип фигуры | 1 | Целое число | 1 | Маленький |
4-11 | X | X | двойной | 1 | Маленький |
12-19 | Г | Г | двойной | 1 | маленький |
Примеры других типов фигур можно найти в документе с техническим описанием ESRI.