Pergunta

Se você tiver dados geográficos armazenados em formas ESRI, você tem pelo menos três arquivos: Um. Terminando com .shp que contém os dados de vetor, uma terminando com .dbf que contém atributos e um arquivo terminando com .shx contendo um índice

Eu estou interessado no arquivo shx. Como funciona? Será que ela contém um mapeamento completo, como 'primeiros mapas de geometria a terceira fila do dbf e mapas segunda geometria para a primeira linha' para cada geometria? Ou será que ele funcione diferente?

Foi útil?

Solução

De acordo com o especificação o shx contém um cabeçalho de 100 bytes seguido por uma sequência de 8 fichas byte. Cada registro armazena um 4 byte offset e um comprimento de conteúdo de 4 bytes para um registro no arquivo de dados shp principal.

+-----------------------------------------------+
| header (100 bytes)                            |
+-----------------+------------------+----------+
| offset(4 bytes) | length (4 bytes) | 
+-----------------+------------------+
| offset(4 bytes) | length (4 bytes) | 
+-----------------+------------------+
| offset(4 bytes) | length (4 bytes) | 
+-----------------+------------------+
| offset(4 bytes) | length (4 bytes) | 
+-----------------+------------------+
| ....                               | 
+-----------------+------------------+

Note-se que o deslocamento é especificado em palavras de 16 bits, de modo a compensar para o primeiro registo é 50 (como o cabeçalho SHP é de 100 bytes, ou 50 seja, comprimento). O comprimento de conteúdo também é especificado em palavras de 16 bits.

Assim, você pode descobrir o número de registros de (index_file_length-100)/8, e usar o índice para acessar um registro forma particular no arquivo shp de forma aleatória ou em seqüência.

Outras dicas

Fine resposta por Paul Dixon.

Embora eu estava me perguntando o que você vai fazer com ele! Se você estiver indo para escrever código para ler ou escrever arquivos SHP eu fortemente sugiro usar uma biblioteca em vez - existem alguns bons livres de código aberto queridos como GDAL , também alguns bons comerciais.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top