Pregunta

Si usted tiene los datos geográficos almacenados en ESRI formas, tiene al menos tres archivos:termina con .shp que contiene el vector de datos, uno que termina con .dbf que contiene los atributos y un archivo que termina con .shx que contiene un índice.

Estoy interesado en el shx-archivo.¿Cómo funciona?Contiene una completa cartografía, como 'primera geometría de los mapas a la tercera fila de la dbf y segundo de la geometría se asigna a la primera fila' para cada geometría?O funciona diferente?

¿Fue útil?

Solución

De acuerdo a la spec el shx contiene un 100 bytes de encabezado seguido por una secuencia de 8 bytes de los registros.Cada una de las tiendas de discos de 4 desplazamiento de byte 4 byte de longitud de contenido de un registro en la principal .shp archivo de datos.

+-----------------------------------------------+
| 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) | 
+-----------------+------------------+
| ....                               | 
+-----------------+------------------+

Tenga en cuenta que el desplazamiento se especifica en palabras de 16 bits, por lo que el desplazamiento para el primer registro es de 50 (como la .shp encabezado es de 100 bytes, o 50 palabras, mucho).La longitud del contenido también se especifica en la 16 bits de las palabras.

Así, se puede averiguar el número de registros de (index_file_length-100)/8, y utilizar el índice para acceder a una particular forma de registro en el .shp archivo al azar o en secuencia.

Otros consejos

Buena respuesta de Paul Dixon.

¡Aunque me preguntaba qué vas a hacer con él! Si va a escribir código para leer o escribir archivos SHP, le sugiero encarecidamente que use una biblioteca en su lugar; hay algunos buenos de código abierto como GDAL , también algunos buenos comerciales.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top