Shp файл что это

Работа с ShapeFile (*.shp) в среде Delphi

В ходе работы столкнулся с задачей чтения файлов с расширением «.shp». Та информация, которую я нашел в интернете, была разрозненной и расплывчатой, и, поэтому, я решил объединить то, до чего мне пришлось доходить самостоятельно, и рассказать вам.

Постановка задачи

У нас имеется файл с расширением «.shp». В этом файле находится карта в виде изолиний: каждая изолиния сделана отдельным шейпом; наименованием шейпа является высотная характеристика изолинии. Нашей задачей станет считать данные из этого в массив. Массив представляет собой набор точек определенный тремя координатами (x, y, z). Далее этот массив нужно занести в базу данных, но данный момент мы упустим из рассмотрения.

Немного теории

Рассмотрим важные для нас особенности формата «*.shp». На самом деле ShapeFile содержит много информации, но у нас узкий интерес. Во первых нам нужно знать, что ShapeFile разделен на так называемые «Шейпы» (англ. Shape — Фигура). Шейп представляет собой фигуру или набор фигур (возможно не связанных между собой) сложных форм. Хранится шейп в виде отдельных точек и информации о линиях соединяющих их. В нашем случае каждый шейп это непрерывная кривая обозначающая положение точек земного ландшафта имеющих одинаковую высоту (наименование шейпа соответствует численному значение высоты). В виду специфичности задачи нас не будет интересовать информация о линиях соединяющих точки, а только информация о положении точек и их высота.

Стоит так же отметить, что вместе с файлом формата «*.shp» формируется файл формата «*.dbf» содержащий заголовочную информацию о наших шейпах. Файл «*.dbf» должен иметь такое же название, что и файл «.shp».

MapWindowGIS

После небольших поисков в сети, мною была обнаружены библиотека MapWindowGIS. Возможности этой библиотеки весьма широки и она поможет нам в достижении наших целей. Скачать ее можно по следующей ссылке.

После того, как Вы скачаете данную библиотеку необходимо ее установить. После установки, запускаем среду разработки Delphi. Выполняем команду Component-Import AciveX Control… после чего появится окно:
Shp файл что это. %D0%91%D0%B5%D0%B7%D1%8B%D0%BC%D1%8F%D0%BD%D0%BD%D1%8B%D0%B9. Shp файл что это фото. Shp файл что это-%D0%91%D0%B5%D0%B7%D1%8B%D0%BC%D1%8F%D0%BD%D0%BD%D1%8B%D0%B9. картинка Shp файл что это. картинка %D0%91%D0%B5%D0%B7%D1%8B%D0%BC%D1%8F%D0%BD%D0%BD%D1%8B%D0%B9

В списке библиотек ActiveX находим — MapWinGIS Component и нажимаем на кнопку «Install…«, после чего необходимо установить данную библиотеку как обычный компонент. После успешной установки данной библиотеки, компонент TMap появиться на вкладке ActiveX.

Добавляем отображение карты

Для начала добавим на форму компонент Map1 типа TMap. Как уже говорилось, он находится на последней позиции вкладки ActiveX.

Для того что бы наш компонент отображал карту, содержащуюся в нашем файле, достаточно простого кода:

shp:Shapefile; //переменная ассоциируемая с шейп-файлом
HandleLayer:integr; //необходимо для индексации слоев в шейп файле

shp:=CoShapefile.Create; //создание шейп-файла
shp.Open(‘map.shp’,nil); //считывание из файла ‘map.shp’
Map1.Focused; //в некоторых случаях, если не добавить данную строчку возникает ошибка
HandleLayer:=Map1.AddLayer(shp,true); //добавление слоя карты на компонент
Map1.ZoomToMaxExtents; //уменьшение (или увеличение) масштаба так, что бы все влезло

Считывание заголовочной информации о шейпах

Что бы считать заголовочную информацию из файла формата «*.dbf» мы будем использовать компоненты TTable и TDataSource. Для этого добавим на форму компоненты Table1 типа TTable и DataSource1 типа TDataSource из вкладок «BDE» и «Data Access» соответственно. Компонент Table1 оставляем без изменения, а в компоненте DataSource1 в параметре «DataSet» выбираем «Table1».

Для удобства добавляем на форму компонент OpenDialog1 типа TOpenDialog из вкладки «Dialogs». В параметре «Filter» компонента OpenDialog1, добавляем фильтр с наименованием «Shape files (.shp)» и фильтрацией «*.shp» (без кавычек). Кроме того добавим кнопки «Открыть» и «Сохранить».

Полный код процедуры на кнопку «Открыть» будет выглядеть следующим образом:

nameDB:WideString; //в этой переменной будет содержаться наименование файла
HandleLayer:integr;

nameDB:=OpenDialog1.FileName; //присваиваем наименование в соответствии с выбором пользователя
shp:=CoShapefile.Create;
shp.Open(nameDB,nil);
Map1.Focused;
HandleLayer:=Map1.AddLayer(shp,true);
Map1.ZoomToMaxExtents;

Delete(nameDB,length(nameDB)-2,3); //обрубаем разрешение
nameDB:=nameDB+’dbf’; //меняем разрешение на «.dbf»
Table1.TableName:=nameDB; //ассоциируем таблицу с фалом «*.dbf»
Table1.Active:=True; //»запускаем» таблицу

Не забываем, что переменную shp нужно добавить в раздел глобальных переменных.

Считываем точки из файла

Для начала приведу код процедуры назначенной на кнопку «Сохранить»:

i,j:integer; //индексирующие переменные
z:integer; //высота точек, считываемая из наименования

if shp<>nil then //проверка на наличие информации в переменной shp
begin

Table1.First; //берем первый шейп из заголовочной таблицы
k:=0;
for i:=0 to shp.NumShapes-1 do //перебор всех шейпов
begin
z:=StrToInt(Table1.Fields[2].Value); //считывание высоты из заголовочной таблицы шейпов
for j:=0 to shp.Shape[i].numPoints-1 do //перебор всех точек шейпа
begin
Mas[k].x:=shp.Shape[i].Point[j].x;
Mas[k].y:=shp.Shape[i].Point[j].y;
Mas[k].z:=z;
inc(k);
end;
Table1.Next; //переходим к следующему шейпу
end;
..
//тут можно например сохранить массив в базу данных
..

end
else ShowMessage(‘Файл не открыт’);
end;

Давайте рассмотрим некоторые особенности. Итак, Mas — одномерный массив точек имеющий три параметра типа Double (x, y, z). Параметр shp.NumShapes равен количеству шейпов внутри файла. Параметр Table1.Fields[2].Value — это наименование текущего шейпа (файл «*.dbf» устроен таким образом, что наименование записано в 3-тьем столбце). shp.Shape[i].numPoints, как вы наверно уже догадались — количество точек в i-том шейпе. shp.Shape[i].Point[j].x и shp.Shape[i].Point[j].y — те самые заветные координаты j-той точки i-того шейпа. Остальное, думаю, понятно из комментариев.

Заключение

Вот мы и закончили рассматривать особенности работы с ShapeFile в среде Delphi. С поставленной задачей мы справились полностью. Конечно, данный обзор является только вершиной айсберга, но я надеюсь эта вводная статья поможет вам в дальнейшем освоении этого направления.

Источник

Расширение файла SHP

Shapes Format

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

Формат файла SHP (сокращение от формы) используется для хранения векторной графики и данных, связанных с геопространственной информацией, используемой программным обеспечением географической информационной системы (ГИС). Файл SHP может содержать географические и пространственные данные, которые описывают такие объекты, как ориентиры, реки, улицы или почтовые зоны.

Идея в формате SHP

Файл SHP представляет собой 2D / 3D изображение, созданное с использованием точек, линий и многоугольников. Каждый элемент проекта может иметь атрибуты (хранящиеся в отдельном файле, сохраненном в формате DBF), которые описывают связанные элементы.

SHP и дополнительные файлы

SHP обычно сопровождается дополнительными файлами, некоторые из которых являются обязательными, а некоторые необязательными. Обязательные файлы: SHP, DBF и SHX. Дополнительные файлы: XML, SBX и PRJ. Необходимые файлы должны находиться в той же папке, что и основной файл.

Программы, которые поддерживают SHP расширение файла

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

Программы, обслуживающие файл SHP

Как открыть файл SHP?

Проблемы с доступом к SHP могут быть вызваны разными причинами. К счастью, наиболее распространенные проблемы с файлами SHP могут быть решены без глубоких знаний в области ИТ, а главное, за считанные минуты. Мы подготовили список, который поможет вам решить ваши проблемы с файлами SHP.

Шаг 1. Получить AutoCAD

Shp файл что это. install software. Shp файл что это фото. Shp файл что это-install software. картинка Shp файл что это. картинка install softwareПроблемы с открытием и работой с файлами SHP, скорее всего, связаны с отсутствием надлежащего программного обеспечения, совместимого с файлами SHP на вашем компьютере. Эта проблема может быть решена путем загрузки и установки # РЕКОМЕНДОВАННОЙ # или другой совместимой программы, такой как 3ds Max, CorelCAD, ArcView. Полный список программ, сгруппированных по операционным системам, можно найти выше. Одним из наиболее безопасных способов загрузки программного обеспечения является использование ссылок официальных дистрибьюторов. Посетите сайт AutoCAD и загрузите установщик.

Шаг 2. Проверьте версию AutoCAD и обновите при необходимости

Shp файл что это. update software. Shp файл что это фото. Shp файл что это-update software. картинка Shp файл что это. картинка update softwareЕсли проблемы с открытием файлов SHP по-прежнему возникают даже после установки AutoCAD, возможно, у вас устаревшая версия программного обеспечения. Проверьте веб-сайт разработчика, доступна ли более новая версия AutoCAD. Иногда разработчики программного обеспечения вводят новые форматы вместо уже поддерживаемых вместе с новыми версиями своих приложений. Причиной того, что AutoCAD не может обрабатывать файлы с SHP, может быть то, что программное обеспечение устарело. Последняя версия AutoCAD должна поддерживать все форматы файлов, которые совместимы со старыми версиями программного обеспечения.

Шаг 3. Назначьте AutoCAD для SHP файлов

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

Shp файл что это. associate software. Shp файл что это фото. Shp файл что это-associate software. картинка Shp файл что это. картинка associate software

Изменить приложение по умолчанию в Windows

Изменить приложение по умолчанию в Mac OS

Шаг 4. Убедитесь, что SHP не неисправен

Если вы выполнили инструкции из предыдущих шагов, но проблема все еще не решена, вам следует проверить файл SHP, о котором идет речь. Проблемы с открытием файла могут возникнуть по разным причинам.

Shp файл что это. check file. Shp файл что это фото. Shp файл что это-check file. картинка Shp файл что это. картинка check file

1. Проверьте SHP файл на наличие вирусов или вредоносных программ.

Если случится так, что SHP инфицирован вирусом, это может быть причиной, которая мешает вам получить к нему доступ. Рекомендуется как можно скорее сканировать систему на наличие вирусов и вредоносных программ или использовать онлайн-антивирусный сканер. SHP файл инфицирован вредоносным ПО? Следуйте инструкциям антивирусного программного обеспечения.

2. Убедитесь, что файл с расширением SHP завершен и не содержит ошибок

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

3. Убедитесь, что у вас есть соответствующие права доступа

Иногда для доступа к файлам пользователю необходимы права администратора. Переключитесь на учетную запись с необходимыми привилегиями и попробуйте снова открыть файл Shapes Format.

4. Проверьте, может ли ваша система обрабатывать AutoCAD

Если в системе недостаточно ресурсов для открытия файлов SHP, попробуйте закрыть все запущенные в данный момент приложения и повторите попытку.

5. Убедитесь, что ваша операционная система и драйверы обновлены

Последние версии программ и драйверов могут помочь вам решить проблемы с файлами Shapes Format и обеспечить безопасность вашего устройства и операционной системы. Устаревшие драйверы или программное обеспечение могли привести к невозможности использования периферийного устройства, необходимого для обработки файлов SHP.

Источник

Shapefile

Shp файл что это. 250px Simple vector map russian.svg. Shp файл что это фото. Shp файл что это-250px Simple vector map russian.svg. картинка Shp файл что это. картинка 250px Simple vector map russian.svg
Векторная карта с точками, ломаными и полигонами.

Официальная документация Esri [1]

«Шейп-файл» (англ. Shapefile) — популярный векторный формат географических файлов. Разрабатывается и поддерживается компанией Esri с целью интероперабельности между продуктами Esri и другими программами.

Содержание

Описание

Shape-файл — векторный формат для хранения объектов, описываемых геометрией и сопутствующими атрибутами. В формате отсутствует возможность хранения топологической информации. Формат был представлен для ArcView GIS версии 2 в начале 90-х. На сегодняшний день существует большое количество платных и бесплатных программ для работы с shape-файлами. Из-за своей распространённости формат стал де-факто стандартом для обмена данными между геоинформационными системами.

Типы геометрических объектов

В настоящее время «Шейп-файл» может хранить следующие типы геометрических объектов:

ТипОписание
PointТочка
PolyLineПолилиния — объект, состоящий из нескольких линий (ломаных), которые могу соприкасаться и пересекаться
PolygonПолигон (может состоять из нескольких частей с пустотами)
MultiPointМультиточка — объект, состоящий из нескольких точек
PointZТочка в 3-х мерном пространстве (XYZ)
PolyLineZПолилиния в 3-х мерном пространстве
PolygonZПолигон в 3-х мерном пространстве
MultiPointZМультиточка в 3-х мерном пространстве
PointMТочка с каким-либо измеренным значением
PolyLineMПолилиния с какими-либо измеренными значениями
PolygonMПолигон с какими-либо измеренными значениями
MultiPointMМультиточка с какими-либо измеренными значениями
MultiPatchТриангуляционные поверхности

Файлы пространственных индексов. Ускоряют операции над геометрическими объектами. Формируются автоматически и могут быть удалены без потерь данных (при этом отключается пространственное индексирование).

Индексные файлы атрибутивных таблиц. Формируются автоматически и могут быть удалены без потерь данных (при этом отключается индексирование в атрибутивных таблицах).

Ограничения

Для ссылок внутри файла используются 4-х байтные числа, поэтому размер shape-файла не может превышать 2 Гб.

Источник

СОДЕРЖАНИЕ

Обзор

Заголовок основного файла имеет фиксированную длину 100 байт и содержит 17 полей; девять 4-байтовых (32-битных целых числа со знаком или int32) целочисленных полей, за которыми следуют восемь 8-байтовых ( двойных ) подписанных полей с плавающей запятой:

БайтыТипПорядок байтовиспользование
0–3int32большойКод файла (всегда шестнадцатеричное значение 0x0000270a )
4–23int32большойНе используется; пять uint32
24–27int32большойДлина файла (16-битными словами, включая заголовок)
28–31int32маленькийВерсия
32–35int32маленькийТип формы (см. Ссылку ниже)
36–67двойноймаленькийМинимальный ограничивающий прямоугольник (MBR) всех фигур, содержащихся в наборе данных; четыре двойных в следующем порядке: мин. X, мин. Y, макс. X, макс. Y
68–83двойноймаленькийДиапазон Z; два дубля в следующем порядке: min Z, max Z
84–99двойноймаленькийДиапазон M; два дубля в следующем порядке: мин М, макс М

Затем файл содержит любое количество записей переменной длины. Каждой записи предшествует заголовок записи размером 8 байтов:

БайтыТипПорядок байтовиспользование
0–3int32большойНомер записи (от 1)
4–7int32большойДлина записи (в 16-битных словах)

За заголовком записи следует фактическая запись:

БайтыТипПорядок байтовиспользование
0–3int32маленькийТип формы (см. Ссылку ниже)
4–Контент формы

Содержимое записи переменной длины зависит от типа фигуры, который должен быть либо типом фигуры, указанным в заголовке файла, либо пустым. Ниже перечислены возможные типы фигур:

ЦенитьТип формыПоля
0Нулевая формаНикто
1ТочкаX, Y
3Ломаная линияMBR, Количество деталей, Количество точек, Детали, Пункты
5МногоугольникMBR, Количество деталей, Количество точек, Детали, Пункты
8MultiPointMBR, Количество точек, Баллы
11PointZX, Y, Z

13PolylineZОбязательно : MBR, количество частей, количество точек, частей, точек, диапазон Z, массив Z

Дополнительно : диапазон M, массив M

15PolygonZОбязательно : MBR, количество частей, количество точек, частей, точек, диапазон Z, массив Z

Дополнительно : диапазон M, массив M

18MultiPointZОбязательно : MBR, количество точек, точки, диапазон Z, массив Z

Дополнительно : диапазон M, массив M

21 годPointMX, Y, M
23PolylineMОбязательно : MBR, Количество деталей, Количество точек, Детали, Пункты

Дополнительно : диапазон M, массив M

25PolygonMОбязательно : MBR, Количество деталей, Количество точек, Детали, Пункты

Дополнительно : диапазон M, массив M

28 годMultiPointMОбязательно : MBR, Количество баллов, Баллы

Необязательные поля : диапазон M, массив M

31 годМультипатчОбязательно : MBR, количество деталей, количество точек, детали, типы деталей, точки, диапазон Z, массив Z

Дополнительно : диапазон M, массив M

БайтыТипПорядок байтовиспользование
0–3int32большойСмещение записи (16-битными словами)
4–7int32большойДлина записи (в 16-битных словах)

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

Ограничения

Топология и формат шейп-файла

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

Пространственное представление

Хранилище данных

Смешивание типов форм

Поскольку тип формы предшествует каждой записи геометрии, шейп-файл технически способен хранить смесь различных типов форм. Однако в спецификации указано: «Все фигуры, отличные от Null, в шейп-файле должны быть одного и того же типа». Следовательно, эта возможность смешивания типов фигур должна быть ограничена перемежением пустых фигур с одним типом фигуры, объявленным в заголовке файла. Шейп-файл не должен содержать данные как полилинии, так и полигона, например, описания колодца (точки), реки (полилинии) и озера (многоугольника) будут храниться в трех отдельных наборах данных.

Источник

Содержание

Обзор

Shapefile shape format (.shp)

Основное заголовок файла имеет фиксированную длину 100 байт и содержит 17 полей; девять 4-байтовых (32-битных целых числа со знаком или int32) целочисленных полей, за которыми следуют восемь 8-байтовых (double ) подписанных полей с плавающей запятой:

Файл затем содержит любое количество записей переменной длины. Каждая запись имеет префикс заголовка записи из 8 байтов:

BytesТипEndiannessИспользование
0–3int32bigНомер записи (на основе 1)
4–7int32bigДлина записи (в 16-битных словах)

После заголовка записи следует фактическая запись:

BytesТипEndiannessИспользование
0–3int32littleТип формы (см. Ссылку ниже)
4–Содержимое формы

Содержимое записи переменной длины зависит от типа формы, который должен быть либо типом формы, указанным в заголовке файла, либо пустым. Ниже приведены возможные типы фигур:

13PolylineZОбязательно : MBR, количество частей, количество точек, части, точки, диапазон Z, массив Z

Необязательно: диапазон M, массив M

Необязательно: M-диапазон, M-массив

18MultiPointZОбязательный: MBR, Количество точек, Точки, Z-диапазон, Массив Z

Необязательно: диапазон M, массив M

21PointMX, Y, M
23PolylineMОбязательный: MBR, количество частей, количество точки, части, точки

Необязательно: диапазон M, массив M

25PolygonMОбязательно: MBR, Numbe r частей, количество точек, частей, точек

Необязательно: диапазон M, массив M

28MultiPointMОбязательно: MBR, количество точек, точек

Необязательно Поля: диапазон M, массив M

31MultiPatchОбязательный: MBR, количество деталей, количество точек, детали, типы деталей, точки, диапазон Z, массив Z

Необязательно: M диапазон, массив M

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

Ограничения

Топология и формат шейп-файла

Формат шейп-файла не позволяет хранить топологическую информацию. Покрытия ESRI ArcInfo и личные / файловые / корпоративные базы геоданных имеют возможность хранить топологию объектов.

Пространственное представление

Хранилище данных

Смешивание типов фигур

Поскольку тип формы предшествует каждой записи геометрии, шейп-файл технически возможен le хранения смеси различных типов форм. Однако в спецификации указано: «Все фигуры, отличные от Null, в шейп-файле должны быть одного и того же типа». Следовательно, эта возможность смешивания типов фигур должна быть ограничена перемежением пустых фигур с одним типом фигуры, объявленным в заголовке файла. Шейп-файл не должен содержать данные как полилинии, так и полигона, например, описания колодца (точки), реки (полилинии) и озера (многоугольника) будут храниться в трех отдельных наборах данных.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *