Официальный сайт геоинформационной системы (ГИС) ObjectLandОфициальный сайт геоинформационной системы (ГИС) ObjectLand
  
 
ПОИСК ПО САЙТУ:
yandex.ru
КАРТА САЙТА
 
главная / поддержка / форум
E-MAIL:ПАРОЛЬ: 
регистрация

Обсуждение

 Длина файла SHP (Вопрос разработчикам)Длина файла SHP (Вопрос разработчикам) [ McLeod ]
Вторник, 25 мая 2004, 09:58

Господа, разработчики, не могли бы вы прокоментировать, почему файлы SHP, которые получаются при экспорте имеют отрицательное значение поля FileLength в заголовке файла? С чем это может быть связано?

 Длина файла SHP (Вопрос разработчикам) [ ObjectLand Development Team ]
Вторник, 25 мая 2004, 12:58

Ниже процитировано описание shp-файла, из которого можно видеть, что у поля FileLength порядок байт, обратный от интеловского. Видимо с этим связана Ваша проблема?
Также обратите внимание, что длина файла задается в 16-битных словах.

Byte Order
-------------

The integers and double-precision integers that make up the data description
fields in the file header (identified below) and record contents in the main
file are in little endian (PC or Intel(R)) byte order. The integers and
double-precision integers that make up the rest of the file are in big endian
(Sun(R) or Motorola(R)) byte order.

The Main File Header
--------------------------

The main file header is 100 bytes long. Table 1 shows the fields in the file
header with their byte position, value, type, and byte order. In the table,
position is with respect to the start of the file.

Table 1
Description of the Main File Header

Byte
Position Field Value Type Order

Byte 0 File Code 9994 Integer Big
Byte 4 Unused 0 Integer Big
Byte 8 Unused 0 Integer Big
Byte 10 Unused 0 Integer Big
Byte 16 Unused 0 Integer Big
Byte 20 Unused 0 Integer Big
Byte 24 File Length File Length Integer Big

Byte 28 Version 1000 Integer Little
Byte 32 Shape Type Shape Type Integer Little
Byte 36 Bounding Box Xmin Double Little
Byte 44 Bounding Box Ymin Double Little
Byte 52 Bounding Box Xmax Double Little
Byte 60 Bounding Box Ymax Double Little

Byte 68 Unused 0 Integer Big
. . . . .
. . . . .
. . . . .
Byte 96 Unused 0 Integer Big


The value for file length is the total length of the file in 16-bit words
(including the fifty 16 bit words that make up the header).

 Длина файла SHP (Вопрос разработчикам) [ McLeod ]
Вторник, 25 мая 2004, 13:26

Видимо неправильно преобразовываю из Big в Litle.
А не могли бы вы подсказать правильный алгоритм? :( :)

 Длина файла SHP (Вопрос разработчикам) [ ObjectLand Development Team ]
Вторник, 25 мая 2004, 13:35

Почитайте на этой странице о "big endian" и измените свой алгоритм:
http://www.webopedia.com/TERM/b/big_endian.html

 Длина файла SHP (Вопрос разработчикам) [ McLeod ]
Вторник, 25 мая 2004, 13:37

Большое вам спасибо

 Длина файла SHP (Вопрос разработчикам) [ VAK ]
Понедельник, 2 августа 2004, 10:06

Прошу прощение, что подключаюсь к обсуждению с опазданием: просто был заинтригован темой, честно скачал описание шейп-файлов и стал разбираться. И пришел в ужас!

Зачем ESRI так поиздевался над программистами - перемешал разный порядок кодирования данных (byte orde) в одном формате?

В подтверждение даю перевод фрагмента документации (кстати, на сайте Data+ перевод этого места не выдерживает никакой критики):
"Для целых чисел и чисел двойной точности, составляющих поля описания данных в заголовке файла ... и тела записей в главном файле, соблюдается порядок байтов «младший в конце» (PC или Intel®). Целые числа и плавающие числа двойной точности, составляющие остальную часть файла и управление файлом, размещаются в порядке байтов «старший в конце» (SUN© или Motorola©)."
Далее см. вышеприведенную структуру заголовка главного файла.

Они что там в Redlands часть шейп-файла обрабатывают на процессоре Intel, а часть на - SUN?
(Вопрос почти риторический, преобладают больше эмоции.)

 Длина файла SHP (Вопрос разработчикам) [ McLeod ]
Среда, 4 августа 2004, 10:01

Думается, что хранить числа с плавающей точкой в стандарте IEEE это хорошая мысль, так как стандарт он везде стандарт. Врядли они заточены под SUN :)
Целые числа в обычном представлении интела, плавающие в IEEE. Все ок. :)
Хотя документация, конечно не выдерживает никакой критики, в виду того, что она ориентирована на использование фирменного SDK ESRI. А если хочешь что-то сделать руками - всё сразу очень плохо. :(

 Длина файла SHP (Вопрос разработчикам) [ VAK ]
Четверг, 5 августа 2004, 07:33

Мысль на счет стандарта IEEE понятна.
Опять заглянул в тех. описание шейп-файла...

Ба!?Да тут, кажется, нестыковки, мягко выражаясь: пишут что double записаны в порядке старший в конце (см. выше тему, а затем в таблице для координат охватывающего прямоугольника указывают младший в конце.

Это как?

Ответить

Знаком «*» отмечены обязательные для заполнения поля.
Ваше имя:  *
Адрес электронной почты:  
Тема:  *
Сообщение:
 *
Подтверждение:
(не требуется для зарегистрированных пользователей)
 *
 



Copyright © 1999–2025 ГИС ObjectLand
ГИС ObjectLand ® ООО «Радом-АйТи»
Информация о лицензировании
главная | о продукте | скачать | купить | поддержка | новости