пятница, 1 июня 2012 г.

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 в исходнике сложностей не вызывает.

Комментариев нет:


(C) Alexey Pechnikov aka MBG, mobigroup.ru