00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 00015 00016 00017 00018 00019
00020
00021 00022 00023 00024 00025 00026
00027
00028 #include <gtk/gtk.h>
00029
00030 #include "gtkfmaps.h"
00031
00032 #ifndef LIBPQ_H
00033 # include "libpq-fe.h"
00034 # define LIBPQ_H
00035 #endif
00036
00037 #ifndef __FMAPS_H__
00038 #define __FMAPS_H__
00039
00040 #ifdef __cpluplus
00041 extern "C" {
00042 #endif
00043
00044
00045 gchar *pghost,
00046 *pgport,
00047 *pgoptions,
00048 *pgtty;
00049 gchar *dbName,
00050 *username,
00051 *password;
00052
00053 PGconn *conn;
00054 PGresult *res;
00055 PGnotify *notify;
00056
00057
00058 typedef enum
00059 {
00060 EXPORT_ELLIPSOID = 0,
00061 IMPORT_ELLIPSOID = 1,
00062 EXPORT_DATUM = 2,
00063 IMPORT_DATUM = 3,
00064 EXPORT_PROJECTION = 4,
00065 IMPORT_PROJECTION = 5,
00066 EXPORT_MIFMID = 6,
00067 IMPORT_MIFMID = 7,
00068 EXPORT_SHAPEFILE = 8,
00069 IMPORT_SHAPEFILE = 9
00070 } FM_FileSelection_Action;
00071
00072 FM_FileSelection_Action fileselection_action;
00073
00074
00075 typedef struct _FM_RowStatus FM_RowStatus;
00076
00077 struct _FM_RowStatus
00078 {
00079 gboolean expandedbefore;
00080 gboolean selectable;
00081 gboolean selected;
00082 };
00083
00084
00085 GtkWidget *dlgPreferences;
00086 GtkWidget *Fmaps;
00087
00088
00089 void fmaps_init(void);
00090 void fmaps_quit(void);
00091
00092 void FM_ConnectDB(void);
00093 void FM_Create_Map_Tables(const gchar *tablename);
00094 int FM_Create_System_Table(PGconn *conn,gchar *tablename,gchar *tablestructure);
00095 void FM_CheckDB(PGconn *conn);
00096 void FM_MessageBox(const char *message);
00097 void FM_Rebuild_Clist(GtkCList *clist, gint type);
00098 void FM_Rebuild_Directory(void);
00099
00100
00101 void FM_Import_Ellipsoid(PGconn* conn,const char *name);
00102 void FM_Export_Ellipsoid(PGconn* conn,const char *name);
00103 void FM_Import_Datum(PGconn* conn,const char *name);
00104 void FM_Export_Datum(PGconn* conn,const char *name);
00105 void FM_Import_Projection(PGconn* conn,const char *name);
00106 void FM_Export_Projection(PGconn* conn,const char *name);
00107 void FM_Import_MIFMID(PGconn* conn,const char *name);
00108 void FM_Import_ShapeFile(PGconn* conn,const char *name);
00109
00110
00111 void FM_Display_Table(GtkWidget *tablewindow,gchar *tablename);
00112
00113
00114 void FM_Init_MetaData(GtkWidget *metadatawindow);
00115 void FM_Display_MetaData(GtkWidget *metadatawindow,gchar *tablename);
00116 void FM_Save_MetaData(GtkWidget *metadatawindow);
00117
00118
00119 00120 00121 00122
00123
00124 #define F_CATALOGUE_TABLE "CREATE TABLE f_catalogue (meta_file_id varchar(50),meta_parent_id varchar(50),title varchar(50),edition varchar(50),series varchar(50),issue_id varchar(50),refdate DATETIME,data_charset varchar(10),abstract varchar(255),purpose varchar(255),progress INT4,access_constraints varchar(255),use_constraints varchar(50),lineage_statement varchar(255),quality_narrative varchar(255),spatial_reference_code1 BOOLEAN,spatial_reference_code2 BOOLEAN,conform_level_code INT4,lang_meta_code char(2),meta_charset varchar(10),meta_date DATETIME)"
00125
00126 00127 00128 00129 00130 00131 00132 00133
00134
00135 #define F_CATALOGUE_INITITATIVE_TABLE "CREATE TABLE f_catalogue_initiative (CID OID,init_type varchar(50),init_name varchar(50),refdate DATETIME)"
00136
00137 #define F_CATALOGUE_PARTY_TABLE "CREATE TABLE f_catalogue_party (CID OID,party_individual varchar(50),party_org varchar(50), party_role_code INT4,address varchar(255),city varchar(50),admin_area varchar(50),country char(2),resource_url varchar(100),email varchar(100),phone varchar(50))"
00138
00139 00140 00141 00142
00143
00144 #define F_CATALOGUE_EXTENTS_TABLE "CREATE TABLE f_catalogue_extents (CID OID,westbc FLOAT8,eastbc FLOAT8,northbc FLOAT8,southbc FLOAT8,geo_name varchar(50),geo_name_ref varchar(50),time_extent DATETIME,min_elev INT4,max_elev INT4)"
00145
00146 #define F_CATALOGUE_RESOLUTION_CODE_TABLE "CREATE TABLE f_catalogue_resolution_code (CID OID,resolution_code INT4)"
00147
00148 00149 00150 00151 00152
00153
00154 #define F_CATALOGUE_LANG_DATA_CODE_TABLE "CREATE TABLE f_catalogue_lang_data_code (CID OID,lang_data_code char(2))"
00155
00156 #define F_CATALOGUE_THEME_CODE_TABLE "CREATE TABLE f_catalogue_theme_code (CID OID,theme_code INT4)"
00157
00158 00159 00160 00161 00162 00163 00164
00165
00166 #define F_CATALOGUE_KEYWORD_INFO_TABLE "CREATE TABLE f_catalogue_keyword_info (CID OID,keywords varchar(50),keyword_type_code INT4,keyword_thesaurus varchar(50))"
00167
00168 00169 00170
00171
00172 #define F_CATALOGUE_SPATIAL_REP_TYPE_CODE_TABLE "CREATE TABLE f_catalogue_spatial_rep_type_code (CID OID,spatial_rep_type_code INT4)"
00173
00174 00175 00176
00177
00178 #define F_CATALOGUE_DISTRIB_ID_TABLE "CREATE TABLE f_catalogue_distrib_id (CID OID,distrib_id varchar(50))"
00179
00180 #define F_CATALOGUE_FORMAT_CODE_TABLE "CREATE TABLE f_catalogue_format_code (CID OID, format_code varchar(50))"
00181
00182 #define F_CATALOGUE_MEDIA_TABLE "CREATE TABLE f_catalogue_media (CID OID,media varchar(50))"
00183
00184 #define F_CATALOGUE_RESOURCE_URL_TABLE "CREATE TABLE f_catalogue_resource_url (CID OID,resource_url varchar(100))"
00185
00186
00187
00188 #define F_DATA_TABLE "CREATE TABLE f_data (dataid SERIAL, data varchar(25),topic varchar(10),objects varchar(10),projid INT4, datumid INT4, ellipsoidid INT4);"
00189 #define F_DATA_TABLE_FIELD "(data, topic, objects, projid, datumid, ellipsoidid)"
00190
00191
00192
00193
00194 #define F_PROJ_TABLE "CREATE TABLE f_projection (projid INT4, name varchar(50),type INT4, par1 FLOAT8, par2 FLOAT8, par3 FLOAT8, par4 FLOAT8, par5 FLOAT8, par6 FLOAT8, par7 FLOAT8, par8 FLOAT8, par9 FLOAT8, par10 FLOAT8)"
00195 #define F_DATUM_TABLE "CREATE TABLE f_datum (datumid INT4, name varchar(50), type INT4, ellipsoidid INT4, dx FLOAT8, dy FLOAT8, dz FLOAT8, ox FLOAT8, oy FLOAT8, oz FLOAT8, scale FLOAT8, pm FLOAT8)"
00196 #define F_ELLIPSOID_TABLE "CREATE TABLE f_ellipsoid (ellipsoidid INT4, name varchar(50), a FLOAT8, f FLOAT8)"
00197 #define F_PROJDATUM_TABLE "CREATE TABLE f_projdatum (projdatumid SERIAL, name varchar(100), projid INT4, datumid INT4, ellipsoidid INT4)"
00198
00199 00200 00201 00202 00203 00204 00205 00206 00207 00208 00209 00210 00211
00212 #define F_GEO_TABLE "(tid OID, size FLOAT8, factor INT2, pattern INT4, r INT2, g INT2, b INT2, a INT2, t1 DATETIME, t2 DATETIME, geo GEOOBJ, color INT2[][], edge BOOL[])"
00213 #define F_GEO_TABLE_FIELD "tid , size , factor , pattern , r , g , b , a , t1, t2, geo , color , edge"
00214
00215
00216 #ifdef __cpluplus
00217 }
00218 #endif
00219
00220 #endif