geomed3d-tclshp package for Shapefile creation from Tcl scripts
Понадобилось мне создавать шейпфайлы, попробовал делать это через gdal (типы полей в DBF, похоже, всегда строковые, не подходит, да и не понравилось - нужно создавать XML файл, в котором прописывать имена файлов, и проч. непотребства совершать) и Spatialite (типы полей могут быть и числовые, но все равно не устраивает - сложно и не быстро). Опробовав два вышеназванных пути, сделал свой пакет GeoMed3dSHP для языка Tcl (получается вдвое быстрее, чем делать то же через Spatialite).
Пример использования:
rm -f test.* && tclsh8.5 package require GeoMed3dSHP set id [SHPCreateFiles test] SHPWritePoint $id 374868.671871 2828378.81973 100.0 777 SHPWritePoint $id 374868.671871 2828378.81973 100.0 888 SHPCloseFiles $id exitНу и заодно расширение GeoMed3dDBF для создания только DBF файлов:
rm -f test.* && tclsh8.5 lappend auto_path . package require GeoMed3dDBF set id [DBFCreateFile test] DBFWrite $id 374868.671871 2828378.81973 100.0 777 DBFWrite $id 374868.671871 2828378.81973 100.0 888 DBFCloseFile $id exitТипы полей в DBF фиксированы, ибо мне так надо :) При необходимости поправить тип/количество полей в DBF в исходнике сложностей не вызывает.
Comments