** proj ** [swig] based binding for tcl for the proj.4 library using the new API described [https://proj4.org/development/reference/index.html%|%here%|%]. *** usage*** *** swig wrapper *** file: proj.i ====== %module proj %{ #include %} %include ====== *** build *** ====== swig -tcl -pkgversion 1.0 -I/usr/include proj.i gcc -shared -fpic -DUSE_TCL_STUBS proj_wrap.c -o proj.so -ltclstub8.6 -lproj ====== file: pkgIndex.tcl ====== package ifneeded proj 1.0 [list load [file join $dir proj.so]] ====== ***bugs*** A number of functions do not work using this simple wrapper. ====== PJ *proj_create_argv (PJ_CONTEXT *ctx, int argc, char **argv); int proj_trans_array (PJ *P, PJ_DIRECTION direction, size_t n, PJ_COORD *coord); double proj_roundtrip (PJ *P, PJ_DIRECTION direction, int n, PJ_COORD *coord); void proj_log_func (PJ_CONTEXT *ctx, void *app_data, PJ_LOG_FUNCTION logf); const PJ_OPERATIONS *proj_list_operations(void); const PJ_ELLPS *proj_list_ellps(void); const PJ_UNITS *proj_list_units(void); const PJ_PRIME_MERIDIANS *proj_list_prime_meridians(void); double proj_dmstor(const char *is, char **rs); ====== <>GIS