Frage

Wenn Sie in ESRI Formen gespeicherten geografische Daten haben, müssen Sie mindestens drei Dateien:. Ein mit SHP Beendigung der Vektor-Daten enthalten, ein mit DBF mit Attributen zu beenden und eine Datei mit Endung .shx einen Index enthält

Ich bin interessiert an der SHX-Datei. Wie funktioniert es? Gibt es eine vollständige Abbildung enthalten, wie ‚erste Geometrie Karten dritte Reihe in der dbf und zweiten Geometrie Karten der ersten Reihe‘ für jede Geometrie? Oder ist es anders funktionieren?

War es hilfreich?

Lösung

Nach dem spec der SHX enthält einen 100-Byte-Kopfball durch eine Folge von 8-Byte-Datensatz. Jeder Datensatz speichert eine 4-Byte-Offset und eine 4-Byte-Inhaltslänge für einen Datensatz in der Haupt SHP-Datendatei.

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

Beachten Sie, dass der Versatz in 16-Bit-Worte spezifiziert, so dass die für den ersten Datensatz Offset 50 (wie der SHP-Header 100 Bytes, oder 50 Worten, lang). Die Inhaltslänge ist auch in 16-Bit-Worten angegeben.

So können Sie die Anzahl der Datensätze von (index_file_length-100)/8 herauszufinden, und den Index verwenden, um eine bestimmte Form Datensatz in der SHP-Datei zufällig oder in Folge zuzugreifen.

Andere Tipps

Fine Antwort von Paul Dixon.

Obwohl ich habe mich gefragt, was Sie mit ihm tun werden! Wenn Sie vorhaben, Code zu schreiben, um SHP-Dateien zu lesen oder schreiben ich stark würde vorschlagen, stattdessen eine Bibliothek - es gibt einige gut kostenlos Open-Source-diejenigen wie GDAL , auch einige gute kommerzielle.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top