سؤال
إذا كان لديك البيانات الجغرافية المخزنة في الأشكال ESRI، لديك على الأقل ثلاث ملفات: واحد تنتهي مع .shp التي تحتوي على بيانات متجهة، واحدة تنتهي مع .DBF يحتوي على سمات وملف تنتهي مع .SHX تحتوي على مؤشر
وأنا مهتم في ملف SHX. كيف يعمل؟ هل تحتوي على رسم خرائط كاملة، مثل "خرائط الأولى هندسة في الصف الثالث في دبف وخرائط هندسة الثانية إلى الصف الأول" لكل الهندسة؟ أو أنها لا تعمل مختلف؟
المحلول
ووفقا للمواصفات rel="noreferrer"> يحتوي على SHX رأس 100 بايت يتبع عن طريق سلسلة من 8 سجلات بايت. كل سجل يخزن 4 الإزاحة وطول محتوى 4 بايت لسجل في ملف البيانات .shp الرئيسي.
+-----------------------------------------------+
| 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) |
+-----------------+------------------+
| .... |
+-----------------+------------------+
لاحظ أن الإزاحة المحدد في 16 كلمة قليلا، وبالتالي فإن تعويض للسجل الأول 50 (كما رأس .shp هو 100 بايت أو 50 كلمة، طويلة). يتم تحديد طول المحتوى أيضا في 16 كلمة الشيء.
وهكذا، يمكنك معرفة عدد السجلات من (index_file_length-100)/8
، واستخدام الفهرس للوصول إلى مستوى قياسي شكل معين في ملف .shp عشوائيا أو في تسلسل.
نصائح أخرى
والجواب الجميلة بول ديكسون.
وعلى الرغم من أنني أتساءل ما كنت تنوي القيام به مع ذلك! إذا كنت تريد الذهاب لكتابة التعليمات البرمجية لقراءة أو كتابة ملفات SHP أود أن أقترح بشدة باستخدام مكتبة بدلا من ذلك - هناك بعض جيدة خالية منها مفتوحة المصدر مثل <وأ href = "http://www.gdal.org/" يختلط = "noreferrer نوفولو"> GDAL ، كما أن البعض منها تجارية جيدة.