aspose.info
UK

SHP - ESRI Shapefile

Оновлено

Що таке файл SHP?

SHP — це розширення файлу для одного з основних типів файлів, які використовуються для представлення ESRI Shapefile. Він представляє геопросторову інформацію у формі векторних даних для використання програмами географічних інформаційних систем (ГІС). Формат розроблено як відкриті специфікації, щоб полегшити взаємодію між ESRI та іншими програмними продуктами.

Представлення даних

Як згадувалося, формат шейп-файлу описує геопросторову інформацію набору даних як векторні об’єкти. Ці векторні функції включають:

  • бали
  • лінії
  • багатокутники

Ці об’єкти в поєднанні можуть представляти майже будь-які типи фігур, як-от колодязі, кордони країни, просторові точки, течії річок, озера тощо. Кожен векторний об’єкт може мати атрибути, які фактично визначають призначення цього об’єкта. Наприклад, шейп-файл, що містить міста Лос-Анджелеса, може мати назву міста та температуру як атрибути, що надає змістовне представлення просторовим даним.

Пов’язані файли

Окремий файл shp не може використовуватися програмним забезпеченням для визначення значення даних, які він містить. Щоб зрозуміти інформацію, що міститься в такому файлі, шейп-файл використовує такі додаткові обов’язкові файли.

  • файл shx - індексний файл
  • файл dbf - файл dBASE, який зберігає всі атрибути фігур у головному файлі
  • файл prj - зберігає інформацію про проект файлу

Можуть існувати й інші додаткові файли, які мають те саме ім’я, що й основний файл.

Специфікації формату файлу SHP

Відкриті специфікації шейп-файлу доступні в Інтернеті від ESRI у формі Технічного опису, де детально розробляється загальна структура файлу. Інформація в основному файлі .shp складається із заголовків і записів. За заголовком файлу фіксованої довжини йдуть записи змінної довжини, де кожен запис складається із заголовка запису фіксованої довжини, за яким слідує вміст запису змінної довжини.

Головний заголовок файлу SHP

Головний заголовок файлу починається з початку файлу і має довжину 100 байт. Організація цього головного заголовка файлу разом із позицією байтів, значенням, типом і порядком байтів, як показано в наступній таблиці.

БайтиПолеЗначенняТипПорядок байтів
0-3Код файлу9994Ціле числоВеликий порядок байтів
4-23Не використовується0ЦілеВеликий порядок байтів
24-27Довжина файлуДовжина файлуЦіле числоВеликий порядок байтів
28-31Версія1000ЦілеLittle Endian
32-35Тип формиТип формиЦіле числоLittle Endian
36-67Мінімальний обмежувальний прямокутникXmin, Ymin, Xmax і YmaxdoubleLittle Endian
68-83Обмежувальна рамкаZmin, ZmaxdoubleLittle Endian
84-99Обмежувальна рамкаMmin, Mmaxподвійний

Слід зазначити, що значення довжини файлу - це загальна довжина файлу в 16-бітних словах, яка також включає п’ятдесят 16-бітних слів, що утворюють заголовок.

Типи фігур

Значення поля типів фігур у таблиці вище:

ЗначенняТип форми
0Нульова форма
1Точка
3Лахана
5Многокутник
8Багатоточкова
11Точка Z
13PolyLineZ
15МногокутникZ
18MultiPointZ
21Точка М
23ПолілініяM
25МногокутникM
28MultiPointM
31Мультипатч

Записи даних

За головним заголовком файлу йдуть записи змінної довжини, де кожен запис складається із заголовка запису фіксованої довжини, за яким слідує вміст запису змінної довжини.

Заголовок запису

Заголовок запису містить інформацію про номер запису та довжину вмісту запису фіксованою довжиною 8 байт. Організація заголовка запису виглядає так:

БайтиПолеЗначенняТипПорядок байтів
0-3Номер записуНомер записуЦіле числоВеликий
4-7Довжина записуДовжина записуЦіле числоВеликий

Вміст запису

Вміст запису шейп-файлу складається з типу фігури, за яким слідують геометричні дані цієї фігури. Тип фігури 0 представляє нульову фігуру, яка не має геометричних даних для фігури. Довжина вмісту запису є відображенням частин фігури та вершин. Давайте візьмемо приклад типу Point Shape, щоб уточнити, як запис містить інформацію про такий тип форми.

Точка представляє певне географічне розташування в порядку X, Y, де кожна координата представлена значенням подвійної точності. У наступній таблиці показано розміщення типу фігури Point.

БайтиТип формиЗначенняТипНомерПорядок байтів
0-3Тип форми1Ціле1Мало
4-11XXподвійний1Мало
12-19YYподвійний1Мало

Приклади інших типів форм можна знайти в документі з технічним описом ESRI.

Посилання

Див. також