#! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! FME_PYTHON_VERSION 36 GUI IGNORE SourceDataset_POSTGIS_1,POSTGIS_IN_FME_CONNECTION_GROUP_POSTGIS_1,POSTGIS_IN_HOST_POSTGIS_1,POSTGIS_IN_PORT_POSTGIS_1,POSTGIS_IN_USER_NAME_POSTGIS_1,POSTGIS_IN_PASSWORD_POSTGIS_1,POSTGIS_IN_FME_GROUP_NAMED1_POSTGIS_1,POSTGIS_IN_WHERE_CLAUSE_POSTGIS_1,POSTGIS_IN_USE_SEARCH_ENVELOPE_POSTGIS_1,POSTGIS_IN_SEARCH_ENVELOPE_MINX_POSTGIS_1,POSTGIS_IN_SEARCH_ENVELOPE_MINY_POSTGIS_1,POSTGIS_IN_SEARCH_ENVELOPE_MAXX_POSTGIS_1,POSTGIS_IN_SEARCH_ENVELOPE_MAXY_POSTGIS_1,POSTGIS_IN_SEARCH_ENVELOPE_COORDINATE_SYSTEM_POSTGIS_1,POSTGIS_IN_CLIP_TO_ENVELOPE_POSTGIS_1,POSTGIS_IN_SEARCH_METHOD_POSTGIS_1,POSTGIS_IN_ADVANCED_POSTGIS_1,POSTGIS_IN_FEATURES_PER_FETCH_POSTGIS_1,POSTGIS_IN_BEGIN_SQL_POSTGIS_1,POSTGIS_IN_END_SQL_POSTGIS_1,POSTGIS_IN_SCHEMAS_FOR_TABLE_LISTING_POSTGIS_1,SourceDataset_POSTGRES_1,POSTGRES_IN_FME_CONNECTION_GROUP_POSTGRES_1,POSTGRES_IN_HOST_POSTGRES_1,POSTGRES_IN_PORT_POSTGRES_1,POSTGRES_IN_USER_NAME_POSTGRES_1,POSTGRES_IN_PASSWORD_POSTGRES_1,POSTGRES_IN_FME_GROUP_NAMED1_POSTGRES_1,POSTGRES_IN_WHERE_CLAUSE_POSTGRES_1,POSTGRES_IN_ADVANCED_POSTGRES_1,POSTGRES_IN_FEATURES_PER_FETCH_POSTGRES_1,POSTGRES_IN_BEGIN_SQL_POSTGRES_1,POSTGRES_IN_END_SQL_POSTGRES_1,POSTGRES_IN_SCHEMAS_FOR_TABLE_LISTING_POSTGRES_1,DestDataset_GEOJSON_1,GEOJSON_OUT_FME_GROUP_NAMED1_GEOJSON_1,GEOJSON_OUT_WRITER_CHARSET_GEOJSON_1,GEOJSON_OUT_WRITE_BOM_GEOJSON_1,GEOJSON_OUT_STRICT_SPEC_GEOJSON_1,GEOJSON_OUT_FME_GROUP_NAMED2_GEOJSON_1,GEOJSON_OUT_PRETTY_PRINT_GEOJSON_1,GEOJSON_OUT_INDENT_SIZE_GEOJSON_1,GEOJSON_OUT_MAX_COORDINATE_PRECISION_GEOJSON_1,GEOJSON_OUT_FME_GROUP_NAMED3_GEOJSON_1,GEOJSON_OUT_COUNTER_CLOCKWISE_AREAS_GEOJSON_1,GEOJSON_OUT_WGS84_REPROJECTION_GEOJSON_1,GEOJSON_OUT_FME_GROUP_NAMED4_GEOJSON_1,GEOJSON_OUT_JSONP_FUNC_NAME_GEOJSON_1,DestDataset_GEOJSON_2,GEOJSON_OUT_FME_GROUP_NAMED1_GEOJSON_2,GEOJSON_OUT_WRITER_CHARSET_GEOJSON_2,GEOJSON_OUT_WRITE_BOM_GEOJSON_2,GEOJSON_OUT_STRICT_SPEC_GEOJSON_2,GEOJSON_OUT_FME_GROUP_NAMED2_GEOJSON_2,GEOJSON_OUT_PRETTY_PRINT_GEOJSON_2,GEOJSON_OUT_INDENT_SIZE_GEOJSON_2,GEOJSON_OUT_MAX_COORDINATE_PRECISION_GEOJSON_2,GEOJSON_OUT_FME_GROUP_NAMED3_GEOJSON_2,GEOJSON_OUT_COUNTER_CLOCKWISE_AREAS_GEOJSON_2,GEOJSON_OUT_WGS84_REPROJECTION_GEOJSON_2,GEOJSON_OUT_FME_GROUP_NAMED4_GEOJSON_2,GEOJSON_OUT_JSONP_FUNC_NAME_GEOJSON_2,DestDataset_POSTGIS_2,POSTGIS_OUT_FME_CONNECTION_GROUP_POSTGIS_2,POSTGIS_OUT_ADVANCED_POSTGIS_2,POSTGIS_OUT_BULK_COPY_POSTGIS_2,POSTGIS_OUT_START_TRANSACTION_POSTGIS_2,POSTGIS_OUT_TRANSACTION_INTERVAL_POSTGIS_2,POSTGIS_OUT_INSERT_TEXT_GEOMETRY_POSTGIS_2,POSTGIS_OUT_BEGIN_SQL_POSTGIS_2,POSTGIS_OUT_END_SQL_POSTGIS_2 DEFAULT_MACRO DestDataset_GEOJSON $(FME_MF_DIR)data/phase_3_troncons.geojson GUI IGNORE FILENAME DestDataset_GEOJSON GeoJSON_Files(*.json)|*.json|All_Files|* Destination GeoJSON File: DEFAULT_MACRO DestDataset_GEOJSON_4 $(FME_MF_DIR)data/phase_3_pk.geojson GUI IGNORE FILENAME DestDataset_GEOJSON_4 GeoJSON_Files(*.json)|*.json|All_Files|* Destination GeoJSON File: DEFAULT_MACRO SourceDataset_POSTGIS_3 redadeg GUI IGNORE TEXT SourceDataset_POSTGIS_3 Database: DEFAULT_MACRO SourceDataset_POSTGRES redadeg GUI IGNORE TEXT SourceDataset_POSTGRES Database: DEFAULT_MACRO START 13 GUI IGNORE INT START Count Start: DEFAULT_MACRO DestDataset_POSTGIS redadegpgrouting GUI IGNORE NAMED_DB_CONNECTION_ENCODED DestDataset_POSTGIS FMT:POSTGIS%FAMILY:PostgreSQL Connection: INCLUDE [ if {{$(DestDataset_GEOJSON)} == {}} { puts_real {Parameter 'DestDataset_GEOJSON' must be given a value.}; exit 1; }; ] INCLUDE [ if {{$(DestDataset_GEOJSON_4)} == {}} { puts_real {Parameter 'DestDataset_GEOJSON_4' must be given a value.}; exit 1; }; ] INCLUDE [ if {{$(SourceDataset_POSTGIS_3)} == {}} { puts_real {Parameter 'SourceDataset_POSTGIS_3' must be given a value.}; exit 1; }; ] INCLUDE [ if {{$(SourceDataset_POSTGRES)} == {}} { puts_real {Parameter 'SourceDataset_POSTGRES' must be given a value.}; exit 1; }; ] INCLUDE [ if {{$(START)} == {}} { puts_real {Parameter 'START' must be given a value.}; exit 1; }; ] INCLUDE [ if {{$(DestDataset_POSTGIS)} == {}} { puts_real {Parameter 'DestDataset_POSTGIS' must be given a value.}; exit 1; }; ] #! START_HEADER #! START_WB_HEADER READER_TYPE MULTI_READER MULTI_READER_TYPE{0} POSTGIS MULTI_READER_KEYWORD{0} POSTGIS_1 MULTI_READER_GEN_DIRECTIVES{0} CLIP_TO_ENVELOPE,NO,QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS,Yes,SEARCH_ENVELOPE_MINX,0,SEARCH_ENVELOPE_MAXY,0,SEARCH_ENVELOPE_MINY,0,SEARCH_METHOD,MBR_OVERLAPS,SCHEMAS_FOR_TABLE_LISTING,public,EXPOSE_ATTRS_GROUP,,ADVANCED,,FEATURES_PER_FETCH,10000,USER_NAME,redadeg,WHERE_CLAUSE,,USE_SEARCH_ENVELOPE,NO,USE_TRUE_POSTGIS_TYPES,yes,SEARCH_ENVELOPE_COORDINATE_SYSTEM,,HOST,192.168.56.131,PORT,5432,BEGIN_SQL,,DISABLE_COLLECTION_SPLITTING,yes,READ_TIME_WITH_TIMEZONE,Yes,POSTGIS_EXPOSE_FORMAT_ATTRS,,SEARCH_ENVELOPE_MAXX,0,END_SQL,,_MERGE_SCHEMAS,YES,TABLELIST,public.phase_2_trace_pgr MULTI_READER_TYPE{1} POSTGRES MULTI_READER_KEYWORD{1} POSTGRES_1 MULTI_READER_GEN_DIRECTIVES{1} EXPOSE_ATTRS_GROUP,,POSTGRES_EXPOSE_FORMAT_ATTRS,,TABLELIST,public.secteur,WHERE_CLAUSE,,_MERGE_SCHEMAS,YES,SCHEMAS_FOR_TABLE_LISTING,public,HOST,192.168.56.131,FEATURES_PER_FETCH,10000,READ_TIME_WITH_TIMEZONE,Yes,ADVANCED,,END_SQL,,QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS,Yes,BEGIN_SQL,,PORT,5432,USER_NAME,redadeg WRITER_TYPE MULTI_WRITER MULTI_WRITER_DATASET_ORDER BY_ID MULTI_WRITER_FIRST_WRITER_ID 0 MULTI_WRITER_TYPE{0} GEOJSON MULTI_WRITER_KEYWORD{0} GEOJSON_1 MULTI_WRITER_TYPE{1} GEOJSON MULTI_WRITER_KEYWORD{1} GEOJSON_2 MULTI_WRITER_TYPE{2} POSTGIS MULTI_WRITER_KEYWORD{2} POSTGIS_2 #! END_WB_HEADER #! START_WB_HEADER MACRO WB_KEYWORD "POSTGIS_1" #! END_WB_HEADER #! START_SOURCE_HEADER POSTGIS POSTGIS_1 # The dataset this mapping file was generated from was: #! END_SOURCE_HEADER #! START_WB_HEADER DEFAULT_MACRO SourceDataset INCLUDE [ if {{$(SourceDataset)} != ""} { \ puts {DEFAULT_MACRO SourceDataset_POSTGIS_1 $(SourceDataset)} \ } ] #! END_WB_HEADER #! START_SOURCE_HEADER POSTGIS POSTGIS_1 DEFAULT_MACRO SourceDataset_POSTGIS_1 $(SourceDataset_POSTGIS_3) GUI TEXT SourceDataset_POSTGIS_1 Database: DEFAULT_MACRO POSTGIS_IN_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS_POSTGIS_1 Yes POSTGIS_1_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS "$(POSTGIS_IN_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS_POSTGIS_1)" DEFAULT_MACRO POSTGIS_IN_READ_TIME_WITH_TIMEZONE_POSTGIS_1 Yes POSTGIS_1_READ_TIME_WITH_TIMEZONE "$(POSTGIS_IN_READ_TIME_WITH_TIMEZONE_POSTGIS_1)" DEFAULT_MACRO POSTGIS_IN_DISABLE_COLLECTION_SPLITTING_POSTGIS_1 yes POSTGIS_1_DISABLE_COLLECTION_SPLITTING "$(POSTGIS_IN_DISABLE_COLLECTION_SPLITTING_POSTGIS_1)" DEFAULT_MACRO POSTGIS_IN_USE_TRUE_POSTGIS_TYPES_POSTGIS_1 yes POSTGIS_1_USE_TRUE_POSTGIS_TYPES "$(POSTGIS_IN_USE_TRUE_POSTGIS_TYPES_POSTGIS_1)" DEFAULT_MACRO POSTGIS_IN_FME_CONNECTION_GROUP_POSTGIS_1 GUI OPTIONAL DISCLOSUREGROUP POSTGIS_IN_FME_CONNECTION_GROUP_POSTGIS_1 POSTGIS_IN_NAMED_CONNECTION%POSTGIS_IN_SCHEMAS_FOR_TABLE_LISTING_POSTGIS_1 Database Connection DEFAULT_MACRO POSTGIS_IN_HOST_POSTGIS_1 192.168.56.131 POSTGIS_1_HOST "$(POSTGIS_IN_HOST_POSTGIS_1)" GUI TEXT POSTGIS_IN_HOST_POSTGIS_1 Host: DEFAULT_MACRO POSTGIS_IN_PORT_POSTGIS_1 5432 POSTGIS_1_PORT "$(POSTGIS_IN_PORT_POSTGIS_1)" GUI INTEGER POSTGIS_IN_PORT_POSTGIS_1 Port: DEFAULT_MACRO POSTGIS_IN_USER_NAME_POSTGIS_1 redadeg POSTGIS_1_USER_NAME "$(POSTGIS_IN_USER_NAME_POSTGIS_1)" GUI TEXT POSTGIS_IN_USER_NAME_POSTGIS_1 Username: DEFAULT_MACRO POSTGIS_IN_PASSWORD_POSTGIS_1 fme_decrypt(MDowfCN8I3xcG3GQ/TeRRUJUZ5LDPtdvpscbh7Nj9gG/INBkAGA+fkaDrNbhZtfa3rmkUUrCxKWaAFwiYsKgWJNl/0mRpxUuP+IT2c+Qhh26JEZtUWAmpuoaQCdQ3ykKWm2zaoAM5MBCGaGEuYe+6AS07/nLNRJwqp1jdwP1FgVCbXRvZtWfKjEZlNJYQ+EicVc6cv2DxCYJyTljvXwF8mKxenML6FKJiHARQCO8OMJidKKZQJP1SeYIhqB0YrtGw4cGV2ZquQKifvRjB2Tl6wBAWDmeCg+R1jvft1tR17SISyTDv77K+mV80w2aaUSgybbF7coM0BrQPcpehfjlW+YxV73+9mPMFXKQeznZ22T8MJor57O44p8U2NQCw35HiFBs0oVP9VkkY0D/WzGRevseyX1pIEWJSQSFwkJVhiyXavMDz5E5SEYgTZHfVeGBXCDuIEEbfRRkPU5yD2nw2ZAVimDRD7UQhEEY6PosGqU17He4y35WEfAggQ40+EKuupOQSZRsKotTTqlYGHJtX49ymuKqfyZzOAUSUzDMcj8gfDgzOCcuhw2sK3fJaMszj/DLU/E7u56X3TJH2TCl3R7o1BsmeMpmgTXrl7OHNVsoDdyHTIp0QqTUSsYWxfZRN+zu72sZw6UY0XRp2lD4wPPyzLmPvgzktHbXLI/X8sm03GjRPTMTKvRYcjHvY0fblJ3blr6YgGKadQf5zvzPu84ddbsxGM9ySTf9xDxg+biPBHL/uL8uhIu9aTI/z8paL9i0mDLAJtNSSB5/q/VwHqGtH6vaKxmfaxlWZvKxdTmgQUPZKVUKLvEep2uAumU+555P3W/3BKNpEAxTeJ+JDrFzei42FvmWx+9mr6pz1+V/Rx6xLvCbxrd0rAzl/VaTRL1LbX1UOtzFBYZpQnojInKm/XlWgjRO) POSTGIS_1_PASSWORD "$(POSTGIS_IN_PASSWORD_POSTGIS_1)" GUI OPTIONAL PASSWORD_ENCODED POSTGIS_IN_PASSWORD_POSTGIS_1 Password: DEFAULT_MACRO POSTGIS_IN_FME_GROUP_NAMED1_POSTGIS_1 GUI OPTIONAL DISCLOSUREGROUP POSTGIS_IN_FME_GROUP_NAMED1_POSTGIS_1 POSTGIS_IN_TABLELIST%POSTGIS_IN_WHERE_CLAUSE_POSTGIS_1 Constraints DEFAULT_MACRO POSTGIS_IN_WHERE_CLAUSE_POSTGIS_1 POSTGIS_1_WHERE_CLAUSE "$(POSTGIS_IN_WHERE_CLAUSE_POSTGIS_1)" GUI OPTIONAL TEXT_EDIT_SQL_CFG POSTGIS_IN_WHERE_CLAUSE_POSTGIS_1 MODE,WHERE;FORMAT,POSTGIS WHERE Clause: DEFAULT_MACRO POSTGIS_IN_EXPOSE_ATTRS_GROUP_POSTGIS_1 POSTGIS_1_EXPOSE_ATTRS_GROUP "$(POSTGIS_IN_EXPOSE_ATTRS_GROUP_POSTGIS_1)" # Include this file in source setting section to add native search envelope processing # Zero as a default means we don't do any search -- this makes workbench happier DEFAULT_MACRO POSTGIS_IN_USE_SEARCH_ENVELOPE_POSTGIS_1 NO POSTGIS_1_USE_SEARCH_ENVELOPE "$(POSTGIS_IN_USE_SEARCH_ENVELOPE_POSTGIS_1)" GUI ACTIVEDISCLOSUREGROUP POSTGIS_IN_USE_SEARCH_ENVELOPE_POSTGIS_1 POSTGIS_IN_SEARCH_ENVELOPE_MINX_POSTGIS_1%POSTGIS_IN_SEARCH_ENVELOPE_MINY_POSTGIS_1%POSTGIS_IN_SEARCH_ENVELOPE_MAXX_POSTGIS_1%POSTGIS_IN_SEARCH_ENVELOPE_MAXY_POSTGIS_1%POSTGIS_IN_SEARCH_ENVELOPE_COORDINATE_SYSTEM_POSTGIS_1%POSTGIS_IN_CLIP_TO_ENVELOPE_POSTGIS_1%POSTGIS_IN_SEARCH_METHOD_POSTGIS_1%POSTGIS_IN_SEARCH_METHOD_FILTER%POSTGIS_IN_SEARCH_ORDER%POSTGIS_IN_SEARCH_FEATURE%POSTGIS_IN_DUMMY_SEARCH_ENVELOPE_PARAMETER Use Search Envelope # =========================================================================== GUI LOOKUP POSTGIS_IN_SEARCH_ENVELOPE_MINX_POSTGIS_1 ,0 DEFAULT_MACRO POSTGIS_IN_SEARCH_ENVELOPE_MINX_POSTGIS_1 0 POSTGIS_1_SEARCH_ENVELOPE "$(POSTGIS_IN_SEARCH_ENVELOPE_MINX_POSTGIS_1)" GUI OPTIONAL FLOAT POSTGIS_IN_SEARCH_ENVELOPE_MINX_POSTGIS_1 Minimum X: # =========================================================================== GUI LOOKUP POSTGIS_IN_SEARCH_ENVELOPE_MINY_POSTGIS_1 ,0 DEFAULT_MACRO POSTGIS_IN_SEARCH_ENVELOPE_MINY_POSTGIS_1 0 POSTGIS_1_SEARCH_ENVELOPE "$(POSTGIS_IN_SEARCH_ENVELOPE_MINY_POSTGIS_1)" GUI OPTIONAL FLOAT POSTGIS_IN_SEARCH_ENVELOPE_MINY_POSTGIS_1 Minimum Y: # =========================================================================== GUI LOOKUP POSTGIS_IN_SEARCH_ENVELOPE_MAXX_POSTGIS_1 ,0 DEFAULT_MACRO POSTGIS_IN_SEARCH_ENVELOPE_MAXX_POSTGIS_1 0 POSTGIS_1_SEARCH_ENVELOPE "$(POSTGIS_IN_SEARCH_ENVELOPE_MAXX_POSTGIS_1)" GUI OPTIONAL FLOAT POSTGIS_IN_SEARCH_ENVELOPE_MAXX_POSTGIS_1 Maximum X: # =========================================================================== GUI LOOKUP POSTGIS_IN_SEARCH_ENVELOPE_MAXY_POSTGIS_1 ,0 DEFAULT_MACRO POSTGIS_IN_SEARCH_ENVELOPE_MAXY_POSTGIS_1 0 POSTGIS_1_SEARCH_ENVELOPE "$(POSTGIS_IN_SEARCH_ENVELOPE_MAXY_POSTGIS_1)" GUI OPTIONAL FLOAT POSTGIS_IN_SEARCH_ENVELOPE_MAXY_POSTGIS_1 Maximum Y: # =========================================================================== GUI LOOKUP POSTGIS_IN_SEARCH_ENVELOPE_COORDINATE_SYSTEM_POSTGIS_1 , DEFAULT_MACRO POSTGIS_IN_SEARCH_ENVELOPE_COORDINATE_SYSTEM_POSTGIS_1 POSTGIS_1_SEARCH_ENVELOPE "$(POSTGIS_IN_SEARCH_ENVELOPE_COORDINATE_SYSTEM_POSTGIS_1)" GUI OPTIONAL COORDSYS POSTGIS_IN_SEARCH_ENVELOPE_COORDINATE_SYSTEM_POSTGIS_1 Search Envelope Coordinate System: # =========================================================================== GUI LOOKUP POSTGIS_IN_CLIP_TO_ENVELOPE_POSTGIS_1 ,NO DEFAULT_MACRO POSTGIS_IN_CLIP_TO_ENVELOPE_POSTGIS_1 NO POSTGIS_1_CLIP_TO_ENVELOPE "$(POSTGIS_IN_CLIP_TO_ENVELOPE_POSTGIS_1)" GUI OPTIONAL CHECKBOX POSTGIS_IN_CLIP_TO_ENVELOPE_POSTGIS_1 YES%NO Clip to Search Envelope DEFAULT_MACRO POSTGIS_IN_SEARCH_METHOD_POSTGIS_1 MBR_OVERLAPS POSTGIS_1_SEARCH_METHOD "$(POSTGIS_IN_SEARCH_METHOD_POSTGIS_1)" GUI LOOKUP_CHOICE POSTGIS_IN_SEARCH_METHOD_POSTGIS_1 MBROverlaps,MBR_OVERLAPS%Contains,CONTAINS%Disjoint,DISJOINT%Equals,EQUALS%Intersects,INTERSECTS%Overlaps,OVERLAPS%Touches,TOUCHES%Within,WITHIN Search Method: GUI LOOKUP POSTGIS_IN_SEARCH_METHOD_POSTGIS_1 ,MBR_OVERLAPS DEFAULT_MACRO POSTGIS_IN_ADVANCED_POSTGIS_1 GUI OPTIONAL DISCLOSUREGROUP POSTGIS_IN_ADVANCED_POSTGIS_1 POSTGIS_IN_FEATURES_PER_FETCH_POSTGIS_1%POSTGIS_IN_BEGIN_SQL_POSTGIS_1%POSTGIS_IN_END_SQL_POSTGIS_1 Advanced DEFAULT_MACRO POSTGIS_IN_FEATURES_PER_FETCH_POSTGIS_1 10000 POSTGIS_1_FEATURES_PER_FETCH "$(POSTGIS_IN_FEATURES_PER_FETCH_POSTGIS_1)" GUI FLOAT POSTGIS_IN_FEATURES_PER_FETCH_POSTGIS_1 Number Of Records To Fetch At A Time DEFAULT_MACRO POSTGIS_IN_BEGIN_SQL_POSTGIS_1 POSTGIS_1_BEGIN_SQL "$(POSTGIS_IN_BEGIN_SQL_POSTGIS_1)" GUI OPTIONAL TEXT_EDIT_SQL_CFG POSTGIS_IN_BEGIN_SQL_POSTGIS_1 MODE,SQL;FORMAT,POSTGIS SQL To Run Before Read DEFAULT_MACRO POSTGIS_IN_END_SQL_POSTGIS_1 POSTGIS_1_END_SQL "$(POSTGIS_IN_END_SQL_POSTGIS_1)" GUI OPTIONAL TEXT_EDIT_SQL_CFG POSTGIS_IN_END_SQL_POSTGIS_1 MODE,SQL;FORMAT,POSTGIS SQL To Run After Read # ============================================================================ DEFAULT_MACRO POSTGIS_IN_ATTRIBUTE_READING_POSTGIS_1 DEFLINE_ATTRS POSTGIS_1_ATTRIBUTE_READING "$(POSTGIS_IN_ATTRIBUTE_READING_POSTGIS_1)" # ============================================================================ POSTGIS_1_GENERATE_FME_BUILD_NUM 18592 DEFAULT_MACRO POSTGIS_IN_SCHEMAS_FOR_TABLE_LISTING_POSTGIS_1 public GUI OPTIONAL TEXT POSTGIS_IN_SCHEMAS_FOR_TABLE_LISTING_POSTGIS_1 Schemas for Table Listing: POSTGIS_1_SCHEMAS_FOR_TABLE_LISTING $(POSTGIS_IN_SCHEMAS_FOR_TABLE_LISTING_POSTGIS_1) POSTGIS_1_DATASET "$(SourceDataset_POSTGIS_1)" #! END_SOURCE_HEADER #! START_WB_HEADER MACRO WB_KEYWORD "POSTGRES_1" #! END_WB_HEADER #! START_SOURCE_HEADER POSTGRES POSTGRES_1 # The dataset this mapping file was generated from was: #! END_SOURCE_HEADER #! START_WB_HEADER DEFAULT_MACRO SourceDataset INCLUDE [ if {{$(SourceDataset)} != ""} { \ puts {DEFAULT_MACRO SourceDataset_POSTGRES_1 $(SourceDataset)} \ } ] #! END_WB_HEADER #! START_SOURCE_HEADER POSTGRES POSTGRES_1 DEFAULT_MACRO SourceDataset_POSTGRES_1 $(SourceDataset_POSTGRES) GUI TEXT SourceDataset_POSTGRES_1 Database: DEFAULT_MACRO POSTGRES_IN_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS_POSTGRES_1 Yes POSTGRES_1_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS "$(POSTGRES_IN_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS_POSTGRES_1)" DEFAULT_MACRO POSTGRES_IN_READ_TIME_WITH_TIMEZONE_POSTGRES_1 Yes POSTGRES_1_READ_TIME_WITH_TIMEZONE "$(POSTGRES_IN_READ_TIME_WITH_TIMEZONE_POSTGRES_1)" DEFAULT_MACRO POSTGRES_IN_FME_CONNECTION_GROUP_POSTGRES_1 GUI OPTIONAL DISCLOSUREGROUP POSTGRES_IN_FME_CONNECTION_GROUP_POSTGRES_1 POSTGRES_IN_NAMED_CONNECTION%POSTGRES_IN_SCHEMAS_FOR_TABLE_LISTING_POSTGRES_1 Database Connection DEFAULT_MACRO POSTGRES_IN_HOST_POSTGRES_1 192.168.56.131 POSTGRES_1_HOST "$(POSTGRES_IN_HOST_POSTGRES_1)" GUI TEXT POSTGRES_IN_HOST_POSTGRES_1 Host: DEFAULT_MACRO POSTGRES_IN_PORT_POSTGRES_1 5432 POSTGRES_1_PORT "$(POSTGRES_IN_PORT_POSTGRES_1)" GUI INTEGER POSTGRES_IN_PORT_POSTGRES_1 Port: DEFAULT_MACRO POSTGRES_IN_USER_NAME_POSTGRES_1 redadeg POSTGRES_1_USER_NAME "$(POSTGRES_IN_USER_NAME_POSTGRES_1)" GUI TEXT POSTGRES_IN_USER_NAME_POSTGRES_1 Username: DEFAULT_MACRO POSTGRES_IN_PASSWORD_POSTGRES_1 fme_decrypt(MDowfCN8I3xcG3GQ/TeRRUJUZ5LDPtdvpscbh7Nj9gG/INBkAGA+fkaDrNbhZtfa3rmkUUrCxKWaAFwiYsKgWJNl/0mRpxUuP+IT2c+Qhh26JEZtUWAmpuoaQCdQ3ykKWm2zaoAM5MBCGaGEuYe+6AS07/nLNRJwqp1jdwP1FgVCbXRvZtWfKjEZlNJYQ+EicVc6cv2DxCYJyTljvXwF8mKxenML6FKJiHARQCO8OMJidKKZQJP1SeYIhqB0YrtGw4cGV2ZquQKifvRjB2Tl6wBAWDmeCg+R1jvft1tR17SISyTDv77K+mV80w2aaUSgybbF7coM0BrQPcpehfjlW+YxV73+9mPMFXKQeznZ22T8MJor57O44p8U2NQCw35HiFBs0oVP9VkkY0D/WzGRevseyX1pIEWJSQSFwkJVhiyXavMDz5E5SEYgTZHfVeGBXCDuIEEbfRRkPU5yD2nw2ZAVimDRD7UQhEEY6PosGqU17He4y35WEfAggQ40+EKuupOQSZRsKotTTqlYGHJtX49ymuKqfyZzOAUSUzDMcj8gfDgzOCcuhw2sK3fJaMszat4XLJZQHEiy+GaUmjNfyMGyfs9U4CnZ0/x0DZyYd1pE/y2TMeZuAD9qzQvwhgjicFysyeCbeZeaVz/1jbucC5nkXjKEIKNMvoMltPKCC5C+2gA/CTLf737Cdm8MqpnUP8iT4vSJoDHDpajs2gHKINhL3QXrLiX3fErG/013ndkGZYJ6/DB77zcXsZ55NdH1V1WljfmqB03wL2ZyW3IklIm4R0z5tDuCZLSZSZKUS/Ur/SGBjyv+w3dOQ4ZBwFDapzR1PoKpqLTN+hYLBMmFTwT4N1LUkGKLaGfaRfDSWsHL4li+VUWVk35LiDf+J5Q5nOF5g2X4rtil+4wUHNbAMmnltkgw+fQS) POSTGRES_1_PASSWORD "$(POSTGRES_IN_PASSWORD_POSTGRES_1)" GUI OPTIONAL PASSWORD_ENCODED POSTGRES_IN_PASSWORD_POSTGRES_1 Password: DEFAULT_MACRO POSTGRES_IN_FME_GROUP_NAMED1_POSTGRES_1 GUI OPTIONAL DISCLOSUREGROUP POSTGRES_IN_FME_GROUP_NAMED1_POSTGRES_1 POSTGRES_IN_TABLELIST%POSTGRES_IN_WHERE_CLAUSE_POSTGRES_1 Constraints DEFAULT_MACRO POSTGRES_IN_WHERE_CLAUSE_POSTGRES_1 POSTGRES_1_WHERE_CLAUSE "$(POSTGRES_IN_WHERE_CLAUSE_POSTGRES_1)" GUI OPTIONAL TEXT_EDIT_SQL_CFG POSTGRES_IN_WHERE_CLAUSE_POSTGRES_1 MODE,WHERE;FORMAT,POSTGRES WHERE Clause: DEFAULT_MACRO POSTGRES_IN_EXPOSE_ATTRS_GROUP_POSTGRES_1 POSTGRES_1_EXPOSE_ATTRS_GROUP "$(POSTGRES_IN_EXPOSE_ATTRS_GROUP_POSTGRES_1)" DEFAULT_MACRO POSTGRES_IN_ADVANCED_POSTGRES_1 GUI OPTIONAL DISCLOSUREGROUP POSTGRES_IN_ADVANCED_POSTGRES_1 POSTGRES_IN_FEATURES_PER_FETCH_POSTGRES_1%POSTGRES_IN_BEGIN_SQL_POSTGRES_1%POSTGRES_IN_END_SQL_POSTGRES_1 Advanced DEFAULT_MACRO POSTGRES_IN_FEATURES_PER_FETCH_POSTGRES_1 10000 POSTGRES_1_FEATURES_PER_FETCH "$(POSTGRES_IN_FEATURES_PER_FETCH_POSTGRES_1)" GUI FLOAT POSTGRES_IN_FEATURES_PER_FETCH_POSTGRES_1 Number Of Records To Fetch At A Time DEFAULT_MACRO POSTGRES_IN_BEGIN_SQL_POSTGRES_1 POSTGRES_1_BEGIN_SQL "$(POSTGRES_IN_BEGIN_SQL_POSTGRES_1)" GUI OPTIONAL TEXT_EDIT_SQL_CFG POSTGRES_IN_BEGIN_SQL_POSTGRES_1 MODE,SQL;FORMAT,POSTGRES SQL To Run Before Read DEFAULT_MACRO POSTGRES_IN_END_SQL_POSTGRES_1 POSTGRES_1_END_SQL "$(POSTGRES_IN_END_SQL_POSTGRES_1)" GUI OPTIONAL TEXT_EDIT_SQL_CFG POSTGRES_IN_END_SQL_POSTGRES_1 MODE,SQL;FORMAT,POSTGRES SQL To Run After Read # ============================================================================ DEFAULT_MACRO POSTGRES_IN_ATTRIBUTE_READING_POSTGRES_1 DEFLINE_ATTRS POSTGRES_1_ATTRIBUTE_READING "$(POSTGRES_IN_ATTRIBUTE_READING_POSTGRES_1)" # ============================================================================ POSTGRES_1_GENERATE_FME_BUILD_NUM 18592 DEFAULT_MACRO POSTGRES_IN_SCHEMAS_FOR_TABLE_LISTING_POSTGRES_1 public GUI OPTIONAL TEXT POSTGRES_IN_SCHEMAS_FOR_TABLE_LISTING_POSTGRES_1 Schemas for Table Listing: POSTGRES_1_SCHEMAS_FOR_TABLE_LISTING $(POSTGRES_IN_SCHEMAS_FOR_TABLE_LISTING_POSTGRES_1) POSTGRES_1_DATASET "$(SourceDataset_POSTGRES_1)" #! END_SOURCE_HEADER #! START_WB_HEADER MACRO WB_KEYWORD "GEOJSON_1" #! END_WB_HEADER #! START_DEST_HEADER GEOJSON GEOJSON_1 #! END_DEST_HEADER #! START_WB_HEADER DEFAULT_MACRO DestDataset INCLUDE [ if {"$(DestDataset)" != ""} { \ puts {DEFAULT_MACRO DestDataset_GEOJSON_1 $(DestDataset)} \ } ] #! END_WB_HEADER #! START_DEST_HEADER GEOJSON GEOJSON_1 DEFAULT_MACRO DestDataset_GEOJSON_1 $(DestDataset_GEOJSON) GUI FILENAME DestDataset_GEOJSON_1 GeoJSON_Files(*.json)|*.json|All_Files|* Destination GeoJSON File: DEFAULT_MACRO GEOJSON_OUT_FME_GROUP_NAMED1_GEOJSON_1 GUI OPTIONAL DISCLOSUREGROUP GEOJSON_OUT_FME_GROUP_NAMED1_GEOJSON_1 GEOJSON_OUT_WRITER_CHARSET_GEOJSON_1%GEOJSON_OUT_WRITE_BOM_GEOJSON_1%GEOJSON_OUT_STRICT_SPEC_GEOJSON_1 Writer Parameters DEFAULT_MACRO GEOJSON_OUT_WRITER_CHARSET_GEOJSON_1 UTF-8 GEOJSON_1_WRITER_CHARSET "$(GEOJSON_OUT_WRITER_CHARSET_GEOJSON_1)" GUI LOOKUP_CHOICE GEOJSON_OUT_WRITER_CHARSET_GEOJSON_1 UTF-8,UTF-8%UTF-16,UTF-16%UTF-16BE,UTF-16BE%UTF-16LE,UTF-16LE%UTF-32,UTF-32%UTF-32BE,UTF-32BE%UTF-32LE,UTF-32LE Output Character Set: DEFAULT_MACRO GEOJSON_OUT_WRITE_BOM_GEOJSON_1 No GEOJSON_1_WRITE_BOM "$(GEOJSON_OUT_WRITE_BOM_GEOJSON_1)" GUI LOOKUP_CHOICE GEOJSON_OUT_WRITE_BOM_GEOJSON_1 Yes,Yes%No,No Byte Order Marker: DEFAULT_MACRO GEOJSON_OUT_STRICT_SPEC_GEOJSON_1 Yes GEOJSON_1_STRICT_SPEC "$(GEOJSON_OUT_STRICT_SPEC_GEOJSON_1)" GUI LOOKUP_CHOICE GEOJSON_OUT_STRICT_SPEC_GEOJSON_1 Yes,Yes%No,No Fully Conform to the GeoJSON Grammar: DEFAULT_MACRO GEOJSON_OUT_FME_GROUP_NAMED2_GEOJSON_1 GUI OPTIONAL DISCLOSUREGROUP GEOJSON_OUT_FME_GROUP_NAMED2_GEOJSON_1 GEOJSON_OUT_PRETTY_PRINT_GEOJSON_1%GEOJSON_OUT_INDENT_SIZE_GEOJSON_1%GEOJSON_OUT_MAX_COORDINATE_PRECISION_GEOJSON_1 Formatting Parameters DEFAULT_MACRO GEOJSON_OUT_PRETTY_PRINT_GEOJSON_1 YES GEOJSON_1_PRETTY_PRINT "$(GEOJSON_OUT_PRETTY_PRINT_GEOJSON_1)" GUI ACTIVECHOICE_LOOKUP GEOJSON_OUT_PRETTY_PRINT_GEOJSON_1 PrettyPrint,YES%Linear,NO,GEOJSON_OUT_INDENT_SIZE_GEOJSON_1 Formatting Type: DEFAULT_MACRO GEOJSON_OUT_INDENT_SIZE_GEOJSON_1 0 GEOJSON_1_INDENT_SIZE "$(GEOJSON_OUT_INDENT_SIZE_GEOJSON_1)" GUI LOOKUP_CHOICE GEOJSON_OUT_INDENT_SIZE_GEOJSON_1 Tabs,0%1space,1%2spaces,2%3spaces,3%4spaces,4%5spaces,5%6spaces,6%7spaces,7%8spaces,8 Indent Size: DEFAULT_MACRO GEOJSON_OUT_MAX_COORDINATE_PRECISION_GEOJSON_1 10 GEOJSON_1_MAX_COORDINATE_PRECISION "$(GEOJSON_OUT_MAX_COORDINATE_PRECISION_GEOJSON_1)" GUI RANGE_SLIDER GEOJSON_OUT_MAX_COORDINATE_PRECISION_GEOJSON_1 1%15%0%ON Coordinate Precision (Maximum Number of Fractional Digits): DEFAULT_MACRO GEOJSON_OUT_FME_GROUP_NAMED3_GEOJSON_1 GUI OPTIONAL DISCLOSUREGROUP GEOJSON_OUT_FME_GROUP_NAMED3_GEOJSON_1 GEOJSON_OUT_COUNTER_CLOCKWISE_AREAS_GEOJSON_1%GEOJSON_OUT_WGS84_REPROJECTION_GEOJSON_1 Geometry DEFAULT_MACRO GEOJSON_OUT_COUNTER_CLOCKWISE_AREAS_GEOJSON_1 Yes GEOJSON_1_COUNTER_CLOCKWISE_AREAS "$(GEOJSON_OUT_COUNTER_CLOCKWISE_AREAS_GEOJSON_1)" GUI LOOKUP_CHOICE GEOJSON_OUT_COUNTER_CLOCKWISE_AREAS_GEOJSON_1 Yes,Yes%No,No Convert Areas to Counterclockwise: DEFAULT_MACRO GEOJSON_OUT_WGS84_REPROJECTION_GEOJSON_1 Yes GEOJSON_1_WGS84_REPROJECTION "$(GEOJSON_OUT_WGS84_REPROJECTION_GEOJSON_1)" GUI LOOKUP_CHOICE GEOJSON_OUT_WGS84_REPROJECTION_GEOJSON_1 Yes,Yes%No,No Reproject to WGS84: DEFAULT_MACRO GEOJSON_OUT_FME_GROUP_NAMED4_GEOJSON_1 GUI OPTIONAL DISCLOSUREGROUP GEOJSON_OUT_FME_GROUP_NAMED4_GEOJSON_1 GEOJSON_OUT_JSONP_FUNC_NAME_GEOJSON_1 JSONP DEFAULT_MACRO GEOJSON_OUT_JSONP_FUNC_NAME_GEOJSON_1 GEOJSON_1_JSONP_FUNC_NAME "$(GEOJSON_OUT_JSONP_FUNC_NAME_GEOJSON_1)" GUI OPTIONAL TEXT GEOJSON_OUT_JSONP_FUNC_NAME_GEOJSON_1 JSONP Function Name: # ============================================================================ # Opt in for destination dataset type vs format type validation DEFAULT_MACRO GEOJSON_OUT_DESTINATION_DATASETTYPE_VALIDATION_GEOJSON_1 Yes GEOJSON_1_DESTINATION_DATASETTYPE_VALIDATION "$(GEOJSON_OUT_DESTINATION_DATASETTYPE_VALIDATION_GEOJSON_1)" # ============================================================================ GEOJSON_1_GENERATE_FME_BUILD_NUM 18578 GEOJSON_1_DATASET "$(DestDataset_GEOJSON_1)" #! END_DEST_HEADER #! START_WB_HEADER MACRO WB_KEYWORD "GEOJSON_2" #! END_WB_HEADER #! START_DEST_HEADER GEOJSON GEOJSON_2 #! END_DEST_HEADER #! START_WB_HEADER DEFAULT_MACRO DestDataset INCLUDE [ if {"$(DestDataset)" != ""} { \ puts {DEFAULT_MACRO DestDataset_GEOJSON_2 $(DestDataset)} \ } ] #! END_WB_HEADER #! START_DEST_HEADER GEOJSON GEOJSON_2 DEFAULT_MACRO DestDataset_GEOJSON_2 $(DestDataset_GEOJSON_4) GUI FILENAME DestDataset_GEOJSON_2 GeoJSON_Files(*.json)|*.json|All_Files|* Destination GeoJSON File: DEFAULT_MACRO GEOJSON_OUT_FME_GROUP_NAMED1_GEOJSON_2 GUI OPTIONAL DISCLOSUREGROUP GEOJSON_OUT_FME_GROUP_NAMED1_GEOJSON_2 GEOJSON_OUT_WRITER_CHARSET_GEOJSON_2%GEOJSON_OUT_WRITE_BOM_GEOJSON_2%GEOJSON_OUT_STRICT_SPEC_GEOJSON_2 Writer Parameters DEFAULT_MACRO GEOJSON_OUT_WRITER_CHARSET_GEOJSON_2 UTF-8 GEOJSON_2_WRITER_CHARSET "$(GEOJSON_OUT_WRITER_CHARSET_GEOJSON_2)" GUI LOOKUP_CHOICE GEOJSON_OUT_WRITER_CHARSET_GEOJSON_2 UTF-8,UTF-8%UTF-16,UTF-16%UTF-16BE,UTF-16BE%UTF-16LE,UTF-16LE%UTF-32,UTF-32%UTF-32BE,UTF-32BE%UTF-32LE,UTF-32LE Output Character Set: DEFAULT_MACRO GEOJSON_OUT_WRITE_BOM_GEOJSON_2 No GEOJSON_2_WRITE_BOM "$(GEOJSON_OUT_WRITE_BOM_GEOJSON_2)" GUI LOOKUP_CHOICE GEOJSON_OUT_WRITE_BOM_GEOJSON_2 Yes,Yes%No,No Byte Order Marker: DEFAULT_MACRO GEOJSON_OUT_STRICT_SPEC_GEOJSON_2 Yes GEOJSON_2_STRICT_SPEC "$(GEOJSON_OUT_STRICT_SPEC_GEOJSON_2)" GUI LOOKUP_CHOICE GEOJSON_OUT_STRICT_SPEC_GEOJSON_2 Yes,Yes%No,No Fully Conform to the GeoJSON Grammar: DEFAULT_MACRO GEOJSON_OUT_FME_GROUP_NAMED2_GEOJSON_2 GUI OPTIONAL DISCLOSUREGROUP GEOJSON_OUT_FME_GROUP_NAMED2_GEOJSON_2 GEOJSON_OUT_PRETTY_PRINT_GEOJSON_2%GEOJSON_OUT_INDENT_SIZE_GEOJSON_2%GEOJSON_OUT_MAX_COORDINATE_PRECISION_GEOJSON_2 Formatting Parameters DEFAULT_MACRO GEOJSON_OUT_PRETTY_PRINT_GEOJSON_2 YES GEOJSON_2_PRETTY_PRINT "$(GEOJSON_OUT_PRETTY_PRINT_GEOJSON_2)" GUI ACTIVECHOICE_LOOKUP GEOJSON_OUT_PRETTY_PRINT_GEOJSON_2 PrettyPrint,YES%Linear,NO,GEOJSON_OUT_INDENT_SIZE_GEOJSON_2 Formatting Type: DEFAULT_MACRO GEOJSON_OUT_INDENT_SIZE_GEOJSON_2 0 GEOJSON_2_INDENT_SIZE "$(GEOJSON_OUT_INDENT_SIZE_GEOJSON_2)" GUI LOOKUP_CHOICE GEOJSON_OUT_INDENT_SIZE_GEOJSON_2 Tabs,0%1space,1%2spaces,2%3spaces,3%4spaces,4%5spaces,5%6spaces,6%7spaces,7%8spaces,8 Indent Size: DEFAULT_MACRO GEOJSON_OUT_MAX_COORDINATE_PRECISION_GEOJSON_2 10 GEOJSON_2_MAX_COORDINATE_PRECISION "$(GEOJSON_OUT_MAX_COORDINATE_PRECISION_GEOJSON_2)" GUI RANGE_SLIDER GEOJSON_OUT_MAX_COORDINATE_PRECISION_GEOJSON_2 1%15%0%ON Coordinate Precision (Maximum Number of Fractional Digits): DEFAULT_MACRO GEOJSON_OUT_FME_GROUP_NAMED3_GEOJSON_2 GUI OPTIONAL DISCLOSUREGROUP GEOJSON_OUT_FME_GROUP_NAMED3_GEOJSON_2 GEOJSON_OUT_COUNTER_CLOCKWISE_AREAS_GEOJSON_2%GEOJSON_OUT_WGS84_REPROJECTION_GEOJSON_2 Geometry DEFAULT_MACRO GEOJSON_OUT_COUNTER_CLOCKWISE_AREAS_GEOJSON_2 Yes GEOJSON_2_COUNTER_CLOCKWISE_AREAS "$(GEOJSON_OUT_COUNTER_CLOCKWISE_AREAS_GEOJSON_2)" GUI LOOKUP_CHOICE GEOJSON_OUT_COUNTER_CLOCKWISE_AREAS_GEOJSON_2 Yes,Yes%No,No Convert Areas to Counterclockwise: DEFAULT_MACRO GEOJSON_OUT_WGS84_REPROJECTION_GEOJSON_2 Yes GEOJSON_2_WGS84_REPROJECTION "$(GEOJSON_OUT_WGS84_REPROJECTION_GEOJSON_2)" GUI LOOKUP_CHOICE GEOJSON_OUT_WGS84_REPROJECTION_GEOJSON_2 Yes,Yes%No,No Reproject to WGS84: DEFAULT_MACRO GEOJSON_OUT_FME_GROUP_NAMED4_GEOJSON_2 GUI OPTIONAL DISCLOSUREGROUP GEOJSON_OUT_FME_GROUP_NAMED4_GEOJSON_2 GEOJSON_OUT_JSONP_FUNC_NAME_GEOJSON_2 JSONP DEFAULT_MACRO GEOJSON_OUT_JSONP_FUNC_NAME_GEOJSON_2 GEOJSON_2_JSONP_FUNC_NAME "$(GEOJSON_OUT_JSONP_FUNC_NAME_GEOJSON_2)" GUI OPTIONAL TEXT GEOJSON_OUT_JSONP_FUNC_NAME_GEOJSON_2 JSONP Function Name: # ============================================================================ # Opt in for destination dataset type vs format type validation DEFAULT_MACRO GEOJSON_OUT_DESTINATION_DATASETTYPE_VALIDATION_GEOJSON_2 Yes GEOJSON_2_DESTINATION_DATASETTYPE_VALIDATION "$(GEOJSON_OUT_DESTINATION_DATASETTYPE_VALIDATION_GEOJSON_2)" # ============================================================================ GEOJSON_2_GENERATE_FME_BUILD_NUM 18578 GEOJSON_2_DATASET "$(DestDataset_GEOJSON_2)" #! END_DEST_HEADER #! START_WB_HEADER MACRO WB_KEYWORD "POSTGIS_2" #! END_WB_HEADER #! START_DEST_HEADER POSTGIS POSTGIS_2 #! END_DEST_HEADER #! START_WB_HEADER DEFAULT_MACRO DestDataset INCLUDE [ if {"$(DestDataset)" != ""} { \ puts {DEFAULT_MACRO DestDataset_POSTGIS_2 $(DestDataset)} \ } ] #! END_WB_HEADER #! START_DEST_HEADER POSTGIS POSTGIS_2 DEFAULT_MACRO DestDataset_POSTGIS_2 $(DestDataset_POSTGIS) GUI NAMED_DB_CONNECTION_ENCODED DestDataset_POSTGIS_2 FMT:POSTGIS Connection: POSTGIS_2_PLUGIN_MAX_CHANNELS 1 DEFAULT_MACRO POSTGIS_OUT_STRICT_TEMPORAL_TYPE_HANDLING_POSTGIS_2 Yes POSTGIS_2_STRICT_TEMPORAL_TYPE_HANDLING "$(POSTGIS_OUT_STRICT_TEMPORAL_TYPE_HANDLING_POSTGIS_2)" DEFAULT_MACRO POSTGIS_OUT_FME_CONNECTION_GROUP_POSTGIS_2 GUI OPTIONAL DISCLOSUREGROUP POSTGIS_OUT_FME_CONNECTION_GROUP_POSTGIS_2 POSTGIS_OUT_NAMED_CONNECTION Database Connection # ============================================================================ # Write geometry (planar) or geography (geodetic) column DEFAULT_MACRO POSTGIS_OUT_SPATIAL_COLUMN_TYPE_POSTGIS_2 geometry POSTGIS_2_SPATIAL_COLUMN_TYPE "$(POSTGIS_OUT_SPATIAL_COLUMN_TYPE_POSTGIS_2)" # ============================================================================ # Default spatial column name DEFAULT_MACRO POSTGIS_OUT_SPATIAL_COLUMN_NAME_POSTGIS_2 geom POSTGIS_2_SPATIAL_COLUMN_NAME "$(POSTGIS_OUT_SPATIAL_COLUMN_NAME_POSTGIS_2)" DEFAULT_MACRO POSTGIS_OUT_GENERIC_GEOMETRY_POSTGIS_2 yes POSTGIS_2_GENERIC_GEOMETRY "$(POSTGIS_OUT_GENERIC_GEOMETRY_POSTGIS_2)" DEFAULT_MACRO POSTGIS_OUT_COORDINATE_SYSTEM_GRANULARITY_POSTGIS_2 FEATURE_TYPE POSTGIS_2_COORDINATE_SYSTEM_GRANULARITY "$(POSTGIS_OUT_COORDINATE_SYSTEM_GRANULARITY_POSTGIS_2)" DEFAULT_MACRO POSTGIS_OUT_ADVANCED_POSTGIS_2 GUI OPTIONAL DISCLOSUREGROUP POSTGIS_OUT_ADVANCED_POSTGIS_2 POSTGIS_OUT_BULK_COPY_POSTGIS_2%POSTGIS_OUT_INSERT_TEXT_GEOMETRY_POSTGIS_2%POSTGIS_OUT_START_TRANSACTION_POSTGIS_2%POSTGIS_OUT_TRANSACTION_INTERVAL_POSTGIS_2%POSTGIS_OUT_BEGIN_SQL_POSTGIS_2%POSTGIS_OUT_END_SQL_POSTGIS_2 Advanced DEFAULT_MACRO POSTGIS_OUT_BULK_COPY_POSTGIS_2 YES POSTGIS_2_BULK_COPY "$(POSTGIS_OUT_BULK_COPY_POSTGIS_2)" GUI CHOICE POSTGIS_OUT_BULK_COPY_POSTGIS_2 YES%NO Bulk Insert DEFAULT_MACRO POSTGIS_OUT_START_TRANSACTION_POSTGIS_2 0 POSTGIS_2_START_TRANSACTION "$(POSTGIS_OUT_START_TRANSACTION_POSTGIS_2)" GUI TEXT POSTGIS_OUT_START_TRANSACTION_POSTGIS_2 Starting Feature: DEFAULT_MACRO POSTGIS_OUT_TRANSACTION_INTERVAL_POSTGIS_2 1000 POSTGIS_2_TRANSACTION_INTERVAL "$(POSTGIS_OUT_TRANSACTION_INTERVAL_POSTGIS_2)" GUI TEXT POSTGIS_OUT_TRANSACTION_INTERVAL_POSTGIS_2 Features Per Transaction DEFAULT_MACRO POSTGIS_OUT_INSERT_TEXT_GEOMETRY_POSTGIS_2 NO POSTGIS_2_INSERT_TEXT_GEOMETRY "$(POSTGIS_OUT_INSERT_TEXT_GEOMETRY_POSTGIS_2)" GUI CHOICE POSTGIS_OUT_INSERT_TEXT_GEOMETRY_POSTGIS_2 YES%NO Insert WKT DEFAULT_MACRO POSTGIS_OUT_BEGIN_SQL_POSTGIS_2 POSTGIS_2_BEGIN_SQL "$(POSTGIS_OUT_BEGIN_SQL_POSTGIS_2)" GUI OPTIONAL TEXT_EDIT_SQL_CFG POSTGIS_OUT_BEGIN_SQL_POSTGIS_2 MODE,SQL;FORMAT,POSTGIS SQL To Run Before Write DEFAULT_MACRO POSTGIS_OUT_END_SQL_POSTGIS_2 POSTGIS_2_END_SQL "$(POSTGIS_OUT_END_SQL_POSTGIS_2)" GUI OPTIONAL TEXT_EDIT_SQL_CFG POSTGIS_OUT_END_SQL_POSTGIS_2 MODE,SQL;FORMAT,POSTGIS SQL To Run After Write # ============================================================================ POSTGIS_2_GENERATE_FME_BUILD_NUM 18592 POSTGIS_2_DATASET "$(DestDataset_POSTGIS_2)" #! END_DEST_HEADER #! START_WB_HEADER #! END_WB_HEADER #! END_HEADER LOG_FILENAME "$(FME_MF_DIR)phase_3_crea_pk_auto.log" LOG_APPEND NO LOG_FILTER_MASK -1 LOG_MAX_FEATURES 200 LOG_MAX_RECORDED_FEATURES 200 FME_REPROJECTION_ENGINE FME FME_IMPLICIT_CSMAP_REPROJECTION_MODE Auto FME_GEOMETRY_HANDLING Enhanced FME_STROKE_MAX_DEVIATION 0 DEFAULT_MACRO DATASET_KEYWORD_POSTGIS_1 POSTGIS_1 DEFAULT_MACRO DATASET_KEYWORD_POSTGRES_1 POSTGRES_1 DEFAULT_MACRO DATASET_KEYWORD_GEOJSON_1 GEOJSON_1 DEFAULT_MACRO DATASET_KEYWORD_GEOJSON_2 GEOJSON_2 DEFAULT_MACRO DATASET_KEYWORD_POSTGIS_2 POSTGIS_2 # ------------------------------------------------------------------------- POSTGIS_1_READER_META_ATTRIBUTES fme_feature_type # ------------------------------------------------------------------------- POSTGRES_1_READER_META_ATTRIBUTES fme_feature_type # ------------------------------------------------------------------------- GEOJSON_1_COORDINATE_SYSTEM EPSG:2154 GEOJSON_2_COORDINATE_SYSTEM EPSG:2154 POSTGIS_2_COORDINATE_SYSTEM EPSG:2154 MULTI_READER_CONTINUE_ON_READER_FAILURE No # ------------------------------------------------------------------------- MACRO WORKSPACE_NAME phase_3_crea_pk_auto MACRO FME_VIEWER_APP fmedatainspector # ------------------------------------------------------------------------- INCLUDE [ if {[info exists env(FME_TEMP)] && [file isdirectory $env(FME_TEMP)]} {set gVisualizerTemp $env(FME_TEMP)} elseif {[info exists env(TEMP)] && [file isdirectory $env(TEMP)]} {set gVisualizerTemp $env(TEMP)} elseif { $tcl_platform(platform) == "unix" } {set gVisualizerTemp "/tmp"} else {set gVisualizerTemp c:}; regsub -all {[ ,&]} {$(WORKSPACE_NAME)} {_} wsname; set gVisualizerTemp $gVisualizerTemp/${wsname}_[clock format [clock seconds] -format %H%M%S]; puts "MACRO WORKSPACE_TEMP_DIR $gVisualizerTemp"; MACRO VISUALIZER_FEATURE_FILE $(WORKSPACE_TEMP_DIR)/inspector.ffs MACRO VISUALIZER_SCHEMA_FILE $(WORKSPACE_TEMP_DIR)/inspector.fsc MACRO VISUALIZER_CREATE_SPATIAL_INDEX YES # ------------------------------------------------------------------------- FACTORY_DEF * RoutingFactory FACTORY_NAME "Router and Unexpected Input Remover" COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE * ROUTE POSTGIS POSTGIS_1::public.phase_2_trace_pgr multi_reader_keyword,$(DATASET_KEYWORD_POSTGIS_1) TO FME_GENERIC ::public.phase_2_trace_pgr ALIAS_GEOMETRY ROUTE POSTGIS POSTGIS_1::public.v_osm_municipalities multi_reader_keyword,$(DATASET_KEYWORD_POSTGIS_1) TO FME_GENERIC ::public.v_osm_municipalities ALIAS_GEOMETRY ROUTE POSTGRES POSTGRES_1::public.secteur multi_reader_keyword,$(DATASET_KEYWORD_POSTGRES_1) TO FME_GENERIC ::public.secteur ALIAS_GEOMETRY MERGE_INPUT Yes OUTPUT ROUTED FEATURE_TYPE * POSTGIS_1_MERGE_DEF POSTGIS_1::public.phase_2_trace_pgr EXACT public.phase_2_trace_pgr DEFLINE postgis_sql_where_clause,,postgis_sql_statement,,secteur_id,int4,path_seq,int8,node,int8,cost,float8,agg_cost,float8,osm_id,int8,highway,text,type,text,oneway,text,ref,text,name_fr,text,name_br,text POSTGIS_1_MERGE_DEF POSTGIS_1::public.v_osm_municipalities EXACT public.v_osm_municipalities DEFLINE postgis_sql_where_clause,,postgis_sql_statement,,nom,varchar80,name_br,text,admincode,varchar80,postcode,text POSTGRES_1_MERGE_DEF POSTGRES_1::public.secteur EXACT public.secteur DEFLINE postgres_type,postgres_none,postgres_sql_where_clause,,postgres_sql_statement,,id,int4,nom_br,text,nom_fr,text,objectif_km,int4,km_redadeg,int4 # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "public.phase_2_trace_pgr (POSTGIS_1) Splitter" INPUT FEATURE_TYPE public.phase_2_trace_pgr OUTPUT FEATURE_TYPE public.phase_2_trace_pgr_POSTGIS_1_0_lZ0XqLzCYmQ= OUTPUT FEATURE_TYPE public.phase_2_trace_pgr_POSTGIS_1_1_dRsdNGVAD0c= # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "public.v_osm_municipalities (POSTGIS_1) Splitter" INPUT FEATURE_TYPE public.v_osm_municipalities OUTPUT FEATURE_TYPE public.v_osm_municipalities_POSTGIS_1_0_7fbaUlQ+SwI= OUTPUT FEATURE_TYPE public.v_osm_municipalities_POSTGIS_1_1_RFUJ57Nvhpc= # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "public.secteur (POSTGRES_1) Splitter" INPUT FEATURE_TYPE public.secteur OUTPUT FEATURE_TYPE public.secteur_POSTGRES_1 DEFAULT_MACRO WB_CURRENT_CONTEXT # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "public.v_osm_municipalities (Disabled) Nuker" INPUT FEATURE_TYPE public.v_osm_municipalities_POSTGIS_1_1_RFUJ57Nvhpc= # ------------------------------------------------------------------------- FACTORY_DEF {*} TeeFactory FACTORY_NAME BulkAttributeRenamer INPUT FEATURE_TYPE public.v_osm_municipalities_POSTGIS_1_0_7fbaUlQ+SwI= OUTPUT { FEATURE_TYPE BulkAttributeRenamer_OUTPUT @RenameAttributes(PATTERN_REPLACE, ADDPREFIX, , "", "municipality_", "", "", "-_", "RENAME", "NONFME") } # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeRenamer_2 INPUT FEATURE_TYPE public.secteur_POSTGRES_1 ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { "km_redadeg" "longueur_km" "RENAME_SET_DEFAULT" "" } ATTR_ACTION { "id" "secteur_id" "RENAME_SET_DEFAULT" "" } OUTPUT OUTPUT FEATURE_TYPE AttributeRenamer_2_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF {*} TeeFactory FACTORY_NAME BulkAttributeRenamer_2 INPUT FEATURE_TYPE public.phase_2_trace_pgr_POSTGIS_1_1_dRsdNGVAD0c= OUTPUT { FEATURE_TYPE BulkAttributeRenamer_2_OUTPUT @RenameAttributes(PATTERN_REPLACE, ADDPREFIX, , "", "way_", "", "", "-_", "RENAME", "NONFME") } # ------------------------------------------------------------------------- INCLUDE [if { {ATTRIBUTES} == {ATTRIBUTES} } { puts "MACRO FeatureMerger_REFERENCE_INFO ATTRIBUTES"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} && {} == {POLYGONS}} { puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_BUILD_POLYS"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} && {} == {AGGREGATES}} { puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_BUILD_AGGREGATES"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} && {} == {LINESFROMPOINTS}} { puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_BUILD_LINES_FROM_POINTS"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {} == {POLYGONS}} { puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_AND_ATTR_BUILD_POLYS"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {} == {AGGREGATES}} { puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_AND_ATTR_BUILD_AGGREGATES"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} && {} == {LINESFROMPOINTS}} { puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_AND_ATTR_BUILD_LINES_FROM_POINTS"; } elseif { {ATTRIBUTES} == {GEOM_BUILD} } { puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_BUILD_AGGREGATES"; } elseif { {ATTRIBUTES} == {GEOM_AND_ATTRS} } { puts "MACRO FeatureMerger_REFERENCE_INFO GEOM_AND_ATTR_BUILD_AGGREGATES"; } else {}; ] FACTORY_DEF {*} ReferenceFactory FACTORY_NAME FeatureMerger INPUT REFERENCER FEATURE_TYPE public.phase_2_trace_pgr_POSTGIS_1_0_lZ0XqLzCYmQ= INPUT REFERENCEE FEATURE_TYPE AttributeRenamer_2_OUTPUT REFERENCE_INFO $(FeatureMerger_REFERENCE_INFO) REFERENCE_TABLE @EvaluateExpression(FDIV,STRING_ENCODED,Valuesecteur_id,FeatureMerger) @EvaluateExpression(FDIV,STRING_ENCODED,Valuesecteur_id,FeatureMerger) AUTO ATTR_ACCUM_MODE "HANDLE_CONFLICT" ATTR_CONFLICT_RES "REQUESTOR_IF_CONFLICT" IGNORE_NULLS "No" HANDLE_NULL_MISSING_KEYS_LIKE_FME2013 No LIST_ATTRS_TO_INCLUDE { } LIST_ATTRS_TO_INCLUDE_MODE MERGE_ATTRIBUTES Yes MANAGE_FME_TYPE Yes MODE COMPLETE PROCESS_DUPLICATE_REFERENCEES NO REFERENCEES_FIRST No REJECT_INVALID_GEOM YES CLEANING_TOLERANCE OUTPUT COMPLETE FEATURE_TYPE FeatureMerger_MERGED # ------------------------------------------------------------------------- FACTORY_DEF {*} ArcFactory FACTORY_NAME LineCombiner INPUT FEATURE_TYPE FeatureMerger_MERGED END_NODED PRESERVE_ORIENTATION no DEAGGREGATE_GEOMETRY Deaggregate CLOSE_LOOPS yes ACCUMULATE_ATTRIBUTES ONE LIST_ATTRS_TO_INCLUDE { } LIST_ATTRS_TO_INCLUDE_MODE DIRECTION_NAME "" LINES_AS_SEGMENTS No CONSIDER_NODE_ELEVATION NO CONNECT_Z_MODE FIRST_WINS BREAK_CONNECTION_ATTRIBUTES { secteur_id } BREAK_CONNECTION_ACROSS_SETS Yes OUTPUT LINE FEATURE_TYPE LineCombiner_LINE FACTORY_DEF * TeeFactory FACTORY_NAME "LineCombiner LINE Splitter" INPUT FEATURE_TYPE LineCombiner_LINE OUTPUT FEATURE_TYPE LineCombiner_LINE_0_OyNlA2VcNkc= OUTPUT FEATURE_TYPE LineCombiner_LINE_1_HTtTHgBPWGw= # ------------------------------------------------------------------------- INCLUDE [ set macroLine "MACRO AttributeRemover_4_LIST_EXP "; foreach attr [split ""] { set attr [FME_DecodeText $attr]; set attr [regsub "{}$" $attr "{}.*"]; set attr [regsub -all "{}" $attr "\\{\[0-9\]+\\}"]; append macroLine ",^$attr$"; }; puts $macroLine; ] FACTORY_DEF {*} TeeFactory FACTORY_NAME AttributeRemover_4 INPUT FEATURE_TYPE LineCombiner_LINE_1_HTtTHgBPWGw= OUTPUT { FEATURE_TYPE AttributeRemover_4_OUTPUT @RemoveAttributes(fme_encoded,node,cost,ref,name_br,highway,type,osm_id,name_fr,agg_cost,oneway) @RemoveAttributes(fme_pcre_match"$(AttributeRemover_4_LIST_EXP)") } # ------------------------------------------------------------------------- FACTORY_DEF * SortFactory FACTORY_NAME Sorter INPUT FEATURE_TYPE AttributeRemover_4_OUTPUT SORT_BY secteur_id NUMERIC ASCENDING path_seq NUMERIC ASCENDING OUTPUT SORTED FEATURE_TYPE Sorter_SORTED # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "IterativeSnipper Input Input Collector" INPUT FEATURE_TYPE Sorter_SORTED OUTPUT FEATURE_TYPE IterativeSnipper_Input MACRO IterativeSnipper_WORKSPACE_NAME IterativeSnipper MACRO $(IterativeSnipper_WORKSPACE_NAME)_XFORMER_NAME IterativeSnipper MACRO $(IterativeSnipper_WORKSPACE_NAME)_TRANSFORMER_GROUP MACRO $(IterativeSnipper_WORKSPACE_NAME)___COMPOUND_PARAMETERS MACRO $(IterativeSnipper_WORKSPACE_NAME)_SUB_DOC_NAME IterativeSnipper MACRO $(IterativeSnipper_WORKSPACE_NAME)_SNIPMODE ToLength MACRO $(IterativeSnipper_WORKSPACE_NAME)_SnipLength @Value(longueur_km) DEFAULT_MACRO IterativeSnipper_WORKSPACE_NAME "" INCLUDE [puts {MACRO WB_OLD_CONTEXT_$(IterativeSnipper_WORKSPACE_NAME) $(WB_CURRENT_CONTEXT)}; puts {MACRO WB_CURRENT_CONTEXT $(IterativeSnipper_WORKSPACE_NAME)}] FACTORY_DEF * TeeFactory FACTORY_NAME "$(IterativeSnipper_WORKSPACE_NAME)_Input1570969466 Input Splitter" INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Input" OUTPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Input" FACTORY_DEF * TeeFactory FACTORY_NAME "$(IterativeSnipper_WORKSPACE_NAME)_LoopINPUT1570969466 Input Splitter" INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_LoopINPUT" OUTPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_LoopINPUT" # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_LengthCalculator_2_LengthCalculatorInput INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_LoopINPUT" OUTPUT FEATURE_TYPE ___TOLENGTHCALCULATOR___ FACTORY_DEF * TeeFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_LengthCalculator_2_LengthCalculator INPUT FEATURE_TYPE ___TOLENGTHCALCULATOR___ @RenameAttributes(FME_STRICT,___fme_rejection_code___,fme_rejection_code) OUTPUT FEATURE_TYPE ___TOREJECTOR___ "Iterative_Snipper_length" @Length(REJECTABLE,3,"1") FACTORY_DEF * TestFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_LengthCalculator_2_Rejector INPUT FEATURE_TYPE ___TOREJECTOR___ TEST @Value(fme_rejection_code) != "" OUTPUT FAILED FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_LengthCalculator_2_OUTPUT" @RenameAttributes(FME_STRICT,fme_rejection_code,___fme_rejection_code___) # ------------------------------------------------------------------------- MACRO OUTPUT_LINE_FTYPE not_selected MACRO OUTPUT_LINE_FTYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_LINE MACRO OUTPUT_INSTANCE_FTYPE not_selected Lookup $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_RouterTable "" "not_selected" fme_line $(OUTPUT_LINE_FTYPE) MACRO COLLECTION_HANDLING NOT_THIS_TIME MACRO INSTANCE_FILTERING * INCLUDE [ if 0 { puts "MACRO COLLECTION_HANDLING *"; if { puts "MACRO INSTANCE_FILTERING NOT_THIS_TIME"; }; }; if {{$(OUTPUT_INSTANCE_FTYPE)} == "not_selected"} { puts "MACRO INSTANCE_FILTERING NOT_THIS_TIME"; }; ] FACTORY_DEF * TeeFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_InputPassThrough INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Input" OUTPUT FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___Input___ @Geometry(FIX_FMETYPE_FMEGEOMETRY) FACTORY_DEF $(INSTANCE_FILTERING) TestFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_InstanceTest INPUT FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___Input___ TEST @Geometry(IS_GEOMETRY_INSTANCE) == 1 OUTPUT PASSED FEATURE_TYPE $(OUTPUT_INSTANCE_FTYPE) OUTPUT FAILED FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___Input___ FACTORY_DEF $(COLLECTION_HANDLING) TestFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_CollectionTest INPUT FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___Input___ TEST &fme_type == "fme_collection" OUTPUT FAILED FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___Not_Collection___ OUTPUT PASSED FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___Collection___ FACTORY_DEF $(COLLECTION_HANDLING) DeaggregateFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_Deagg INPUT FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___Collection___ HOMOGENIZE_COLLECTIONS YES RECURSIVE YES SET_FME_TYPE YES INSTANTIATE_GEOMETRY_INSTANCES_NEW OUTPUT POINT FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___HomogeneousAggregate___ OUTPUT LINE FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___HomogeneousAggregate___ OUTPUT POLYGON FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___HomogeneousAggregate___ OUTPUT DONUT FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___HomogeneousAggregate___ OUTPUT AGGREGATE FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___HomogeneousAggregate___ FACTORY_DEF * TeeFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_RouterPrepper INPUT FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___HomogeneousAggregate___ INPUT FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___Not_Collection___ INPUT FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___Input___ OUTPUT FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___Prepped___ $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_a734a6e5_351b_4dc6_b5fc_25ea741bf62710_targetFeatureType @Lookup($(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_RouterTable,&fme_type) FACTORY_DEF * TestFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_Router INPUT FEATURE_TYPE $(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter___Prepped___ TEST @Value($(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_a734a6e5_351b_4dc6_b5fc_25ea741bf62710_targetFeatureType) != "not_selected" OUTPUT PASSED FEATURE_TYPE * @FeatureType(@Value($(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_a734a6e5_351b_4dc6_b5fc_25ea741bf62710_targetFeatureType)) @RemoveAttributes($(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_a734a6e5_351b_4dc6_b5fc_25ea741bf62710_targetFeatureType) OUTPUT FAILED FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_" @RemoveAttributes($(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_a734a6e5_351b_4dc6_b5fc_25ea741bf62710_targetFeatureType) # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_AttributeCreator INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_" MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { "" "fme_rejection_code" "SET_TO" "INVALID_GEOMETRY_TYPE" } OUTPUT OUTPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_AttributeCreator_OUTPUT" # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_LengthCalculator_LengthCalculatorInput INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_GeometryFilter_LINE" OUTPUT FEATURE_TYPE ___TOLENGTHCALCULATOR___ FACTORY_DEF * TeeFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_LengthCalculator_LengthCalculator INPUT FEATURE_TYPE ___TOLENGTHCALCULATOR___ @RenameAttributes(FME_STRICT,___fme_rejection_code___,fme_rejection_code) OUTPUT FEATURE_TYPE ___TOREJECTOR___ "Iterative_Snipper_length" @Length(REJECTABLE,3,"1") FACTORY_DEF * TestFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_LengthCalculator_Rejector INPUT FEATURE_TYPE ___TOREJECTOR___ TEST @Value(fme_rejection_code) != "" OUTPUT FAILED FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_LengthCalculator_OUTPUT" @RenameAttributes(FME_STRICT,fme_rejection_code,___fme_rejection_code___) # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_Snip_Mode INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_LengthCalculator_OUTPUT" TEST @EvaluateExpression(FDIV,STRING_ENCODED,$($(IterativeSnipper_WORKSPACE_NAME)_SNIPMODE),$(IterativeSnipper_WORKSPACE_NAME)_Snip_Mode) = ToNumber ENCODED BOOLEAN_OPERATOR OR OUTPUT PASSED FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Snip_Mode_PASSED" OUTPUT FAILED FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Snip_Mode_FAILED" # ------------------------------------------------------------------------- Tcl2 proc $(IterativeSnipper_WORKSPACE_NAME)_ParameterFetcher_doFetch {} { foreach {name val} {"Iterative_Snipper_maxLength {$($(IterativeSnipper_WORKSPACE_NAME)_SnipLength$encode)}"} { if { [string match {**} $val] == 1 } { set val [FME_Execute EvaluateExpression {STRING} $val {$(IterativeSnipper_WORKSPACE_NAME)_ParameterFetcher}]; } elseif {[string match {*FME_CONDITIONAL*} $val] == 1} { set val [FME_Execute EvaluateExpression {STRING} $val {$(IterativeSnipper_WORKSPACE_NAME)_ParameterFetcher}]; } else { set val [FME_DecodeTextOrAttr $val]; }; FME_SetAttribute [FME_DecodeText $name] $val } } FACTORY_DEF * TeeFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_ParameterFetcher INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Snip_Mode_FAILED" OUTPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_ParameterFetcher_OUTPUT" @Tcl2($(IterativeSnipper_WORKSPACE_NAME)_ParameterFetcher_doFetch) # ------------------------------------------------------------------------- INCLUDE TCL if {{OUTGOING} == {OUTGOING}} { set attrs [list {Iterative_Snipper_maxLength}]; } else { set attrAll {}; if {[string length $attrAll] == 0} { return; }; set attrs [split {} { }]; }; if {{NO_OP} == {NO_OP}} { set parmList ATTR_CREATE_EXPR_PROPAGATE_MISSING_TYPED_FDIV; } else { set parmList ATTR_CREATE_EXPR_PROPAGATE_MISSING_TYPED_FDIV_MULTI_FEATURE; }; foreach attr $attrs { lappend parmList $attr; lappend parmList {ValueIterative_Snipper_lengthdouble$($(IterativeSnipper_WORKSPACE_NAME)_SnipLength$encode)}; lappend parmList {FLOAT}; }; lappend parmList {$(IterativeSnipper_WORKSPACE_NAME)_ExpressionEvaluator}; if {{NO_OP} == {OTHER_NULL_VALUE_2}} { lappend parmList {NO_OP}; lappend parmList {}; lappend parmList {0}; }; puts "MACRO __fme_expressionevaluator_evaluateArgs__ [join $parmList ,]"; END_INCLUDE FACTORY_DEF * TeeFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_ExpressionEvaluator INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Snip_Mode_PASSED" OUTPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_ExpressionEvaluator_OUTPUT" @EvaluateExpression($(__fme_expressionevaluator_evaluateArgs__)) MACRO __fme_expressionevaluator_evaluateArgs__ # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_Tester INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_LengthCalculator_2_OUTPUT" INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_ExpressionEvaluator_OUTPUT" INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_ParameterFetcher_OUTPUT" TEST @EvaluateExpression(FDIV,STRING_ENCODED,ValueIterative_Snipper_length,$(IterativeSnipper_WORKSPACE_NAME)_Tester) <= @EvaluateExpression(FDIV,STRING_ENCODED,ValueIterative_Snipper_maxLength,$(IterativeSnipper_WORKSPACE_NAME)_Tester) ENCODED BOOLEAN_OPERATOR OR OUTPUT PASSED FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Tester_PASSED" OUTPUT FAILED FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Tester_FAILED" # ------------------------------------------------------------------------- # The Snipper takes the constant "end" to mean the last vertex of the line, # but Workbench won't let us put an alpha string into the "last vertex" textfield. # We'll interpret an ending vertex of -1 as being the same as "end". # This is used only in the distance and percentage. Tcl2 proc $(IterativeSnipper_WORKSPACE_NAME)_Snipper_3_fixIndex {numIndex} { if {$numIndex < 0} { return "end"; } else { return $numIndex; } } INCLUDE [ if { ({DISTANCE} == {DISTANCE} || {DISTANCE} == {PERCENTAGE}) } { puts {MACRO $(IterativeSnipper_WORKSPACE_NAME)_Snipper_3_snipFunc @Snip(@Tcl2("$(IterativeSnipper_WORKSPACE_NAME)_Snipper_3_fixIndex 0"),@Tcl2("$(IterativeSnipper_WORKSPACE_NAME)_Snipper_3_fixIndex @EvaluateExpression(FLOAT,ValueIterative_Snipper_maxLength,$(IterativeSnipper_WORKSPACE_NAME)_Snipper_3)"),DISTANCE,3D,OUTPUT_REMNANT)}; } elseif { ({DISTANCE} == {MEASURE_RELATIVE_FROM_START} || {DISTANCE} == {MEASURE_REAL_VALUES}) } { puts {MACRO $(IterativeSnipper_WORKSPACE_NAME)_Snipper_3_snipFunc @Snip("0", "@EvaluateExpression(FLOAT,ValueIterative_Snipper_maxLength,$(IterativeSnipper_WORKSPACE_NAME)_Snipper_3)", "", DISTANCE,OUTPUT_REMNANT)}; } elseif { ({DISTANCE} == {VERTEX}) } { puts {MACRO $(IterativeSnipper_WORKSPACE_NAME)_Snipper_3_snipFunc @Snip("","",VERTEX,OUTPUT_REMNANT)}; } ] FACTORY_DEF * TestFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_Snipper_3_Aggfilter INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Tester_FAILED" TEST @Value(fme_geometry) != "fme_aggregate" OUTPUT PASSED FEATURE_TYPE ___TO_TYPEFILTER___ FACTORY_DEF * TestFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_Snipper_3_Typefilter INPUT FEATURE_TYPE ___TO_TYPEFILTER___ TEST @Value(fme_type) == "fme_line" TEST @Value(fme_type) == "fme_arc" TEST @Value(fme_geometry) == "fme_polygon" BOOLEAN_OPERATOR OR OUTPUT PASSED FEATURE_TYPE ___TO_INPUT___ FACTORY_DEF * TeeFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_Snipper_3_Input INPUT FEATURE_TYPE ___TO_INPUT___ OUTPUT FEATURE_TYPE ____TO_DEAGGREGATOR____ $($(IterativeSnipper_WORKSPACE_NAME)_Snipper_3_snipFunc) FACTORY_DEF * DeaggregateFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_Snipper_3_SplitRemnants INPUT FEATURE_TYPE ____TO_DEAGGREGATOR____ RECURSIVE No SPLIT_COMPOSITES No SET_FME_TYPE Yes PART_NUMBER_FIELD _part_number GEOMETRY_NAME_FIELD _geometry_name OUTPUT POINT FEATURE_TYPE ___TO_NULLNUKER___ OUTPUT LINE FEATURE_TYPE ___TO_NULLNUKER___ OUTPUT POLYGON FEATURE_TYPE ___TO_NULLNUKER___ OUTPUT DONUT FEATURE_TYPE ___TO_NULLNUKER___ OUTPUT AGGREGATE FEATURE_TYPE ___TO_NULLNUKER___ FACTORY_DEF * TestFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_Snipper_3_NullNuker INPUT FEATURE_TYPE ___TO_NULLNUKER___ TEST @Value(_part_number) == 0 TEST @NumCoords() == 0 BOOLEAN_OPERATOR AND OUTPUT FAILED FEATURE_TYPE ___TO_OUTPUTTER___ FACTORY_DEF * TestFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_Snipper_3_Outputter INPUT FEATURE_TYPE ___TO_OUTPUTTER___ TEST @Value(_part_number) == 0 TEST @Tcl2("FME_AttributeExists _part_number") == 0 BOOLEAN_OPERATOR OR OUTPUT PASSED FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Snipper_3_OUTPUT" @RemoveAttributes(_part_number) OUTPUT FAILED FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Snipper_3_REMNANTS" @RemoveAttributes(_part_number) # ------------------------------------------------------------------------- INCLUDE [ set macroLine "MACRO $(IterativeSnipper_WORKSPACE_NAME)_AttributeRemover_LIST_EXP "; foreach attr [split ""] { set attr [FME_DecodeText $attr]; set attr [regsub "{}$" $attr "{}.*"]; set attr [regsub -all "{}" $attr "\\{\[0-9\]+\\}"]; append macroLine ",^$attr$"; }; puts $macroLine; ] FACTORY_DEF {*} TeeFactory FACTORY_NAME $(IterativeSnipper_WORKSPACE_NAME)_AttributeRemover INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Tester_PASSED" INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Snipper_3_OUTPUT" OUTPUT { FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_AttributeRemover_OUTPUT" @RemoveAttributes(fme_encoded,Iterative_Snipper_length,Iterative_Snipper_maxLength) @RemoveAttributes(fme_pcre_match"$($(IterativeSnipper_WORKSPACE_NAME)_AttributeRemover_LIST_EXP)") } FACTORY_DEF * TeeFactory FACTORY_NAME "$(IterativeSnipper_WORKSPACE_NAME)_AttributeRemover OUTPUT Splitter" INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_AttributeRemover_OUTPUT" OUTPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_AttributeRemover_OUTPUT_0_Qm2dMgLpIbU=" OUTPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_AttributeRemover_OUTPUT_1_wE8adFtviSk=" # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "$(IterativeSnipper_WORKSPACE_NAME)_Counter (Disabled) Nuker" INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_AttributeRemover_OUTPUT_0_Qm2dMgLpIbU=" FACTORY_DEF * BranchingFactory TARGET_FACTORY "$(IterativeSnipper_WORKSPACE_NAME)_LoopINPUT1570969466 Input Splitter" FACTORY_NAME "Loop to $(IterativeSnipper_WORKSPACE_NAME)_LoopINPUT1570969466 Input Splitter" MAXIMUM_COUNT -1 INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Snipper_3_REMNANTS" OUTPUT PASSED FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_LoopINPUT" FACTORY_DEF * TeeFactory FACTORY_NAME "$(IterativeSnipper_WORKSPACE_NAME)_Output1570969466 Output Collector" INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_AttributeRemover_OUTPUT_1_wE8adFtviSk=" INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Counter_OUTPUT" OUTPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_Output" FACTORY_DEF * TeeFactory FACTORY_NAME "$(IterativeSnipper_WORKSPACE_NAME)_1570969466 Output Collector" INPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_AttributeCreator_OUTPUT" OUTPUT FEATURE_TYPE "$(IterativeSnipper_WORKSPACE_NAME)_" INCLUDE [puts {MACRO WB_CURRENT_CONTEXT $(WB_OLD_CONTEXT_$(IterativeSnipper_WORKSPACE_NAME))}] FACTORY_DEF * TeeFactory FACTORY_NAME "IterativeSnipper Output Output Renamer/Nuker" INPUT FEATURE_TYPE IterativeSnipper_Output OUTPUT FEATURE_TYPE IterativeSnipper_Output FACTORY_DEF * TeeFactory FACTORY_NAME "IterativeSnipper Output Renamer/Nuker" INPUT FEATURE_TYPE IterativeSnipper_ OUTPUT FEATURE_TYPE IterativeSnipper_ # ------------------------------------------------------------------------- # Assumption is that the workspace temp dir has been already set and created. See controldefs.cpp - ControlDefs::writeVisualizerTempDir DEFAULT_MACRO WORKSPACE_TEMP_DIR INCLUDE [ set safeName "[regsub -all {[^a-zA-Z0-9]} {IterativeSnipper__Rejected_} _]_[expr round(rand() * 1000000)]_[clock clicks -milliseconds]"; puts "MACRO SAFE_FFS_NAME $safeName"; ] FACTORY_DEF {*} InspectorFactory FACTORY_NAME IterativeSnipper__Rejected__Prepper COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE IterativeSnipper_ GROUP_ATTRIBUTE __inspector_feature_type_attr__ GROUP_BY { } GROUP_ATTRIBUTE_PREFIX { IterativeSnipper__Rejected_ } RASTER_REDUCTION NoReduction POINT_CLOUD_REDUCTION NO_THINNING OUTPUT RESULT FEATURE_TYPE __viewme__ # Now route all the features into the recorder, changing their # feature type to the transformer name so that they view nicely DEFAULT_MACRO VISUALIZER_FEATURE_FILE $(WORKSPACE_TEMP_DIR)/$(SAFE_FFS_NAME).ffs DEFAULT_MACRO VISUALIZER_CREATE_SPATIAL_INDEX NO # [PR#45549] The Data Inspector will limit the maximum number of features # it reads on WIN32, so we will correspondingly limit the number of # features we record here using the MAX_FEATURES_TO_RECORD directive. FACTORY_DEF * RecorderFactory FACTORY_NAME IterativeSnipper__Rejected__Recorder COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE __viewme__ _wb_termination_feature Yes @FeatureType(TERMINATOR_@Value(_wb_termination_xformer)) INPUT FEATURE_TYPE __viewme__ @FeatureType(@Value(__inspector_feature_type_attr__)) @RemoveAttributes(__inspector_feature_type_attr__) FEATURE_FILE "$(VISUALIZER_FEATURE_FILE)" STORE_SCANNED_SCHEMA YES CREATE_SPATIAL_INDEX "$(VISUALIZER_CREATE_SPATIAL_INDEX)" INSPECTOR "$(VISUALIZER_CREATE_SPATIAL_INDEX)" FSC_SCHEMA fme_rejection_code,varchar255,secteur_id,varchar255,path_seq,varchar255,longueur_km,varchar255,nom_br,varchar255,nom_fr,varchar255,objectif_km,varchar255 MODE RECORD STORE_SCANNED_METADATA RECORD_DIRECTLY_TO_DISK YES MAX_FEATURES_TO_RECORD WIN32 2000000 # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME LengthCalculator_LengthCalculatorInput INPUT FEATURE_TYPE IterativeSnipper_Output OUTPUT FEATURE_TYPE ___TOLENGTHCALCULATOR___ FACTORY_DEF * TeeFactory FACTORY_NAME LengthCalculator_LengthCalculator INPUT FEATURE_TYPE ___TOLENGTHCALCULATOR___ @RenameAttributes(FME_STRICT,___fme_rejection_code___,fme_rejection_code) OUTPUT FEATURE_TYPE ___TOREJECTOR___ "longueur" @Length(REJECTABLE,2,"1") FACTORY_DEF * TestFactory FACTORY_NAME LengthCalculator_Rejector INPUT FEATURE_TYPE ___TOREJECTOR___ TEST @Value(fme_rejection_code) != "" OUTPUT FAILED FEATURE_TYPE LengthCalculator_OUTPUT @RenameAttributes(FME_STRICT,fme_rejection_code,___fme_rejection_code___) FACTORY_DEF * TeeFactory FACTORY_NAME "LengthCalculator OUTPUT Splitter" INPUT FEATURE_TYPE LengthCalculator_OUTPUT OUTPUT FEATURE_TYPE LengthCalculator_OUTPUT_0_mOViq6QLaFg= OUTPUT FEATURE_TYPE LengthCalculator_OUTPUT_1_zC1I4Ymc4xc= OUTPUT FEATURE_TYPE LengthCalculator_OUTPUT_2_Fc3qYUDsB4Q= # ------------------------------------------------------------------------- Tcl2 set {CoordinateConcatenator_coordDelim} [FME_DecodeText {|}]; Tcl2 set {CoordinateConcatenator_elementDelim} [FME_DecodeText {}]; Tcl2 proc CoordinateConcatenator_coord_list {DIM} { global {CoordinateConcatenator_coordDelim}; global {CoordinateConcatenator_elementDelim}; set numCoords [FME_Coordinates numCoords]; set output {}; set includeX [string first {X} {Y X} ]; set includeY [string first {Y} {Y X} ]; set includeZ [string first {Z} {Y X} ]; if { $includeX == -1 && $includeY == -1 && $includeZ == -1 } { FME_SetAttribute _coordinates $output; return; }; for {set i 0} {$i < $numCoords} {incr i} { if {$includeX != -1} { append output [FME_Coordinates getCoord x $i]; }; if {$includeY != -1} { if {$includeX != -1} { append output [set {CoordinateConcatenator_elementDelim}] [FME_Coordinates getCoord y $i]; } else { append output [FME_Coordinates getCoord y $i]; }; }; if { $DIM == 3 && $includeZ != -1 } { if { $includeX != -1 || $includeY != -1 } { append output [set {CoordinateConcatenator_elementDelim}] [FME_Coordinates getCoord z $i]; } else { append output [FME_Coordinates getCoord z $i]; }; }; if {$i < ($numCoords - 1)} { append output [set {CoordinateConcatenator_coordDelim}] }; }; FME_SetAttribute _coordinates $output; } FACTORY_DEF * TeeFactory FACTORY_NAME CoordinateConcatenator INPUT FEATURE_TYPE LengthCalculator_OUTPUT_1_zC1I4Ymc4xc= OUTPUT FEATURE_TYPE CoordinateConcatenator_OUTPUT @Tcl2("CoordinateConcatenator_coord_list @Dimension()") # ------------------------------------------------------------------------- Tcl2 set AttributeSplitter_5e12a1f5_98a6_4f69_b0b5_41f09fff7c6310_splitDelim [FME_DecodeText {|}]; if { [regexp {^([1-9][0-9]*s)+$} [set AttributeSplitter_5e12a1f5_98a6_4f69_b0b5_41f09fff7c6310_splitDelim]] } { set AttributeSplitter_5e12a1f5_98a6_4f69_b0b5_41f09fff7c6310_splitWidths [split [regsub -all {s$} {|} {}] s]; proc AttributeSplitter_doSplit {} { global AttributeSplitter_5e12a1f5_98a6_4f69_b0b5_41f09fff7c6310_splitWidths; set source [FME_GetAttribute [FME_DecodeText {_coordinates}]]; set attrNum 0; set listName [FME_DecodeText {_coords}]; set attrPos 0; set keepEmptyParts [string equal {No} {No}]; foreach width [set AttributeSplitter_5e12a1f5_98a6_4f69_b0b5_41f09fff7c6310_splitWidths] { set endPos [expr $attrPos + $width - 1]; set bit [string range $source $attrPos $endPos]; set part [string trim $bit]; if { $keepEmptyParts || $part != \"\" } { FME_SetAttribute "$listName{$attrNum}" $part; incr attrNum; }; incr attrPos $width; }; }; } else { proc AttributeSplitter_doSplit {} { global AttributeSplitter_5e12a1f5_98a6_4f69_b0b5_41f09fff7c6310_splitDelim; set delim [set AttributeSplitter_5e12a1f5_98a6_4f69_b0b5_41f09fff7c6310_splitDelim]; set delimLength [string length $delim]; set source [FME_GetAttribute [FME_DecodeText {_coordinates}]]; set keepEmptyParts [string equal {No} {No}]; set bits {}; set startIndex 0; set nextIndex [string first $delim $source $startIndex]; while {$nextIndex >= 0} { lappend bits [string range $source $startIndex [expr $nextIndex-1]]; set startIndex [expr $nextIndex + $delimLength]; set nextIndex [string first $delim $source $startIndex]; }; lappend bits [string range $source $startIndex end]; set listName [FME_DecodeText {_coords}]; set attrNum 0; foreach bit $bits { set trimmedPart [string trim $bit]; if { $keepEmptyParts || $trimmedPart != \"\" } { FME_SetAttribute "$listName{$attrNum}" $trimmedPart; incr attrNum; }; } } } FACTORY_DEF * TeeFactory FACTORY_NAME AttributeSplitter INPUT FEATURE_TYPE CoordinateConcatenator_OUTPUT OUTPUT FEATURE_TYPE AttributeSplitter_OUTPUT @Tcl2(AttributeSplitter_doSplit) # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME ListElementCounter INPUT FEATURE_TYPE AttributeSplitter_OUTPUT OUTPUT FEATURE_TYPE ListElementCounter_OUTPUT "_vertex_count" @NumElements("_coords",ENCODED) # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME GeometryRemover INPUT FEATURE_TYPE ListElementCounter_OUTPUT OUTPUT FEATURE_TYPE GeometryRemover_OUTPUT @RemoveGeometry() FACTORY_DEF * TeeFactory FACTORY_NAME "GeometryRemover OUTPUT Splitter" INPUT FEATURE_TYPE GeometryRemover_OUTPUT OUTPUT FEATURE_TYPE GeometryRemover_OUTPUT_0_lyMsYNg46jM= OUTPUT FEATURE_TYPE GeometryRemover_OUTPUT_1_OUiOuQAK2cA= # ------------------------------------------------------------------------- Tcl2 proc ListIndexer_4_indexer {index numElements prefix} { if {$index < 0 } { set index [expr $numElements + $index]; }; regsub \"{}\" {_coords{}} \"{$index}\" listWithIndex; regsub \"{}\" {_coords{}} {} listBase; set complexListExp "$listWithIndex\."; set prefixLength [expr [string length $complexListExp]-1]; set prefix [FME_DecodeText $prefix]; foreach attr [FME_AttributeNames] { set newAttr {}; if {$attr == $listWithIndex} { set newAttr $listBase; } elseif {[string first $complexListExp $attr] == 0} { set newAttr [string replace $attr 0 $prefixLength]; }; if {$newAttr != {}} { if {$prefix != {} } { set newAttr $prefix$newAttr; }; if {[string first {fme_} $newAttr] != 0} { set first [string first {fme_} $newAttr]; lappend attrsToCopy $newAttr $attr; }; }; }; if {[info exists attrsToCopy] && [llength $attrsToCopy] > 0} { eval FME_Execute CopyAttributes $attrsToCopy; }; } FACTORY_DEF * TestFactory FACTORY_NAME ListIndexer_4_IntTester INPUT FEATURE_TYPE GeometryRemover_OUTPUT_1_OUiOuQAK2cA= TEST "@EvaluateExpression(FDIV,FLOAT,Value_vertex_count-1,ListIndexer_4)" TYPE INT ENCODED OUTPUT PASSED FEATURE_TYPE __toOutput__ FACTORY_DEF * TestFactory FACTORY_NAME ListIndexer_4_ListIndexer INPUT FEATURE_TYPE __toOutput__ TEST "@EvaluateExpression(FDIV,FLOAT,Value_vertex_count-1,ListIndexer_4)" >= 0 OUTPUT PASSED FEATURE_TYPE ListIndexer_4_OUTPUT @Tcl2("ListIndexer_4_indexer @EvaluateExpression(FDIV,FLOAT,Value_vertex_count-1,ListIndexer_4) 0 {}") OUTPUT FAILED FEATURE_TYPE ListIndexer_4_OUTPUT @Tcl2("ListIndexer_4_indexer @EvaluateExpression(FDIV,FLOAT,Value_vertex_count-1,ListIndexer_4) @NumElements(_coords{}) {}") # ------------------------------------------------------------------------- Tcl2 set AttributeSplitter_3_2df82bc3_e6e8_41bc_9f93_995a8ce0619010_splitDelim [FME_DecodeText {}]; if { [regexp {^([1-9][0-9]*s)+$} [set AttributeSplitter_3_2df82bc3_e6e8_41bc_9f93_995a8ce0619010_splitDelim]] } { set AttributeSplitter_3_2df82bc3_e6e8_41bc_9f93_995a8ce0619010_splitWidths [split [regsub -all {s$} {} {}] s]; proc AttributeSplitter_3_doSplit {} { global AttributeSplitter_3_2df82bc3_e6e8_41bc_9f93_995a8ce0619010_splitWidths; set source [FME_GetAttribute [FME_DecodeText {_coords}]]; set attrNum 0; set listName [FME_DecodeText {_coords_vertex}]; set attrPos 0; set keepEmptyParts [string equal {No} {No}]; foreach width [set AttributeSplitter_3_2df82bc3_e6e8_41bc_9f93_995a8ce0619010_splitWidths] { set endPos [expr $attrPos + $width - 1]; set bit [string range $source $attrPos $endPos]; set part [string trim $bit]; if { $keepEmptyParts || $part != \"\" } { FME_SetAttribute "$listName{$attrNum}" $part; incr attrNum; }; incr attrPos $width; }; }; } else { proc AttributeSplitter_3_doSplit {} { global AttributeSplitter_3_2df82bc3_e6e8_41bc_9f93_995a8ce0619010_splitDelim; set delim [set AttributeSplitter_3_2df82bc3_e6e8_41bc_9f93_995a8ce0619010_splitDelim]; set delimLength [string length $delim]; set source [FME_GetAttribute [FME_DecodeText {_coords}]]; set keepEmptyParts [string equal {No} {No}]; set bits {}; set startIndex 0; set nextIndex [string first $delim $source $startIndex]; while {$nextIndex >= 0} { lappend bits [string range $source $startIndex [expr $nextIndex-1]]; set startIndex [expr $nextIndex + $delimLength]; set nextIndex [string first $delim $source $startIndex]; }; lappend bits [string range $source $startIndex end]; set listName [FME_DecodeText {_coords_vertex}]; set attrNum 0; foreach bit $bits { set trimmedPart [string trim $bit]; if { $keepEmptyParts || $trimmedPart != \"\" } { FME_SetAttribute "$listName{$attrNum}" $trimmedPart; incr attrNum; }; } } } FACTORY_DEF * TeeFactory FACTORY_NAME AttributeSplitter_3 INPUT FEATURE_TYPE ListIndexer_4_OUTPUT OUTPUT FEATURE_TYPE AttributeSplitter_3_OUTPUT @Tcl2(AttributeSplitter_3_doSplit) # ------------------------------------------------------------------------- Tcl2 proc ListIndexer_5_indexer {index numElements prefix} { if {$index < 0 } { set index [expr $numElements + $index]; }; regsub \"{}\" {_coords_vertex{}} \"{$index}\" listWithIndex; regsub \"{}\" {_coords_vertex{}} {} listBase; set complexListExp "$listWithIndex\."; set prefixLength [expr [string length $complexListExp]-1]; set prefix [FME_DecodeText $prefix]; foreach attr [FME_AttributeNames] { set newAttr {}; if {$attr == $listWithIndex} { set newAttr $listBase; } elseif {[string first $complexListExp $attr] == 0} { set newAttr [string replace $attr 0 $prefixLength]; }; if {$newAttr != {}} { if {$prefix != {} } { set newAttr $prefix$newAttr; }; if {[string first {fme_} $newAttr] != 0} { set first [string first {fme_} $newAttr]; lappend attrsToCopy $newAttr $attr; }; }; }; if {[info exists attrsToCopy] && [llength $attrsToCopy] > 0} { eval FME_Execute CopyAttributes $attrsToCopy; }; } FACTORY_DEF * TestFactory FACTORY_NAME ListIndexer_5_IntTester INPUT FEATURE_TYPE AttributeSplitter_3_OUTPUT TEST "0" TYPE INT ENCODED OUTPUT PASSED FEATURE_TYPE __toOutput__ FACTORY_DEF * TestFactory FACTORY_NAME ListIndexer_5_ListIndexer INPUT FEATURE_TYPE __toOutput__ TEST "0" >= 0 OUTPUT PASSED FEATURE_TYPE ListIndexer_5_OUTPUT @Tcl2("ListIndexer_5_indexer 0 0 {x}") OUTPUT FAILED FEATURE_TYPE ListIndexer_5_OUTPUT @Tcl2("ListIndexer_5_indexer 0 @NumElements(_coords_vertex{}) {x}") # ------------------------------------------------------------------------- Tcl2 proc ListIndexer_6_indexer {index numElements prefix} { if {$index < 0 } { set index [expr $numElements + $index]; }; regsub \"{}\" {_coords_vertex{}} \"{$index}\" listWithIndex; regsub \"{}\" {_coords_vertex{}} {} listBase; set complexListExp "$listWithIndex\."; set prefixLength [expr [string length $complexListExp]-1]; set prefix [FME_DecodeText $prefix]; foreach attr [FME_AttributeNames] { set newAttr {}; if {$attr == $listWithIndex} { set newAttr $listBase; } elseif {[string first $complexListExp $attr] == 0} { set newAttr [string replace $attr 0 $prefixLength]; }; if {$newAttr != {}} { if {$prefix != {} } { set newAttr $prefix$newAttr; }; if {[string first {fme_} $newAttr] != 0} { set first [string first {fme_} $newAttr]; lappend attrsToCopy $newAttr $attr; }; }; }; if {[info exists attrsToCopy] && [llength $attrsToCopy] > 0} { eval FME_Execute CopyAttributes $attrsToCopy; }; } FACTORY_DEF * TestFactory FACTORY_NAME ListIndexer_6_IntTester INPUT FEATURE_TYPE ListIndexer_5_OUTPUT TEST "1" TYPE INT ENCODED OUTPUT PASSED FEATURE_TYPE __toOutput__ FACTORY_DEF * TestFactory FACTORY_NAME ListIndexer_6_ListIndexer INPUT FEATURE_TYPE __toOutput__ TEST "1" >= 0 OUTPUT PASSED FEATURE_TYPE ListIndexer_6_OUTPUT @Tcl2("ListIndexer_6_indexer 1 0 {y}") OUTPUT FAILED FEATURE_TYPE ListIndexer_6_OUTPUT @Tcl2("ListIndexer_6_indexer 1 @NumElements(_coords_vertex{}) {y}") # ------------------------------------------------------------------------- INCLUDE [ set macroLine "MACRO AttributeRemover_2_LIST_EXP "; foreach attr [split "_coords_vertex _coords"] { set attr [FME_DecodeText $attr]; set attr [regsub "{}$" $attr "{}.*"]; set attr [regsub -all "{}" $attr "\\{\[0-9\]+\\}"]; append macroLine ",^$attr$"; }; puts $macroLine; ] FACTORY_DEF {*} TeeFactory FACTORY_NAME AttributeRemover_2 INPUT FEATURE_TYPE ListIndexer_6_OUTPUT OUTPUT { FEATURE_TYPE AttributeRemover_2_OUTPUT @RemoveAttributes(fme_encoded,_coords_vertex0,_coords,_coords0) @RemoveAttributes(fme_pcre_match"$(AttributeRemover_2_LIST_EXP)") } # ------------------------------------------------------------------------- FACTORY_DEF * VertexCreatorFactory FACTORY_NAME VertexCreator_2 INPUT FEATURE_TYPE AttributeRemover_2_OUTPUT MODE ADD INDEX "" CONTINUE_ON_ERROR YES XVAL "@EvaluateExpression(FDIV,FLOAT,Valuex_coords_vertex,VertexCreator_2)" YVAL "@EvaluateExpression(FDIV,FLOAT,Valuey_coords_vertex,VertexCreator_2)" OUTPUT OUTPUT FEATURE_TYPE VertexCreator_2_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory FACTORY_NAME AttributeCreator_2 COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE VertexCreator_2_OUTPUT MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { "" "position_vertex" "SET_TO" "fin" } OUTPUT OUTPUT FEATURE_TYPE AttributeCreator_2_OUTPUT FACTORY_DEF * TeeFactory FACTORY_NAME "AttributeCreator_2 OUTPUT Splitter" INPUT FEATURE_TYPE AttributeCreator_2_OUTPUT OUTPUT FEATURE_TYPE AttributeCreator_2_OUTPUT_0_j0uI5yR3ojs= OUTPUT FEATURE_TYPE AttributeCreator_2_OUTPUT_1_RySErNGX5NA= # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "Vertex_fin (Disabled) Nuker" INPUT FEATURE_TYPE AttributeCreator_2_OUTPUT_0_j0uI5yR3ojs= # ------------------------------------------------------------------------- Tcl2 proc ListIndexer_indexer {index numElements prefix} { if {$index < 0 } { set index [expr $numElements + $index]; }; regsub \"{}\" {_coords{}} \"{$index}\" listWithIndex; regsub \"{}\" {_coords{}} {} listBase; set complexListExp "$listWithIndex\."; set prefixLength [expr [string length $complexListExp]-1]; set prefix [FME_DecodeText $prefix]; foreach attr [FME_AttributeNames] { set newAttr {}; if {$attr == $listWithIndex} { set newAttr $listBase; } elseif {[string first $complexListExp $attr] == 0} { set newAttr [string replace $attr 0 $prefixLength]; }; if {$newAttr != {}} { if {$prefix != {} } { set newAttr $prefix$newAttr; }; if {[string first {fme_} $newAttr] != 0} { set first [string first {fme_} $newAttr]; lappend attrsToCopy $newAttr $attr; }; }; }; if {[info exists attrsToCopy] && [llength $attrsToCopy] > 0} { eval FME_Execute CopyAttributes $attrsToCopy; }; } FACTORY_DEF * TestFactory FACTORY_NAME ListIndexer_IntTester INPUT FEATURE_TYPE GeometryRemover_OUTPUT_0_lyMsYNg46jM= TEST "0" TYPE INT ENCODED OUTPUT PASSED FEATURE_TYPE __toOutput__ FACTORY_DEF * TestFactory FACTORY_NAME ListIndexer_ListIndexer INPUT FEATURE_TYPE __toOutput__ TEST "0" >= 0 OUTPUT PASSED FEATURE_TYPE ListIndexer_OUTPUT @Tcl2("ListIndexer_indexer 0 0 {}") OUTPUT FAILED FEATURE_TYPE ListIndexer_OUTPUT @Tcl2("ListIndexer_indexer 0 @NumElements(_coords{}) {}") # ------------------------------------------------------------------------- Tcl2 set AttributeSplitter_2_18d447e0_88de_4963_bffd_4caf8dc13fb710_splitDelim [FME_DecodeText {}]; if { [regexp {^([1-9][0-9]*s)+$} [set AttributeSplitter_2_18d447e0_88de_4963_bffd_4caf8dc13fb710_splitDelim]] } { set AttributeSplitter_2_18d447e0_88de_4963_bffd_4caf8dc13fb710_splitWidths [split [regsub -all {s$} {} {}] s]; proc AttributeSplitter_2_doSplit {} { global AttributeSplitter_2_18d447e0_88de_4963_bffd_4caf8dc13fb710_splitWidths; set source [FME_GetAttribute [FME_DecodeText {_coords}]]; set attrNum 0; set listName [FME_DecodeText {_coords_vertex}]; set attrPos 0; set keepEmptyParts [string equal {No} {No}]; foreach width [set AttributeSplitter_2_18d447e0_88de_4963_bffd_4caf8dc13fb710_splitWidths] { set endPos [expr $attrPos + $width - 1]; set bit [string range $source $attrPos $endPos]; set part [string trim $bit]; if { $keepEmptyParts || $part != \"\" } { FME_SetAttribute "$listName{$attrNum}" $part; incr attrNum; }; incr attrPos $width; }; }; } else { proc AttributeSplitter_2_doSplit {} { global AttributeSplitter_2_18d447e0_88de_4963_bffd_4caf8dc13fb710_splitDelim; set delim [set AttributeSplitter_2_18d447e0_88de_4963_bffd_4caf8dc13fb710_splitDelim]; set delimLength [string length $delim]; set source [FME_GetAttribute [FME_DecodeText {_coords}]]; set keepEmptyParts [string equal {No} {No}]; set bits {}; set startIndex 0; set nextIndex [string first $delim $source $startIndex]; while {$nextIndex >= 0} { lappend bits [string range $source $startIndex [expr $nextIndex-1]]; set startIndex [expr $nextIndex + $delimLength]; set nextIndex [string first $delim $source $startIndex]; }; lappend bits [string range $source $startIndex end]; set listName [FME_DecodeText {_coords_vertex}]; set attrNum 0; foreach bit $bits { set trimmedPart [string trim $bit]; if { $keepEmptyParts || $trimmedPart != \"\" } { FME_SetAttribute "$listName{$attrNum}" $trimmedPart; incr attrNum; }; } } } FACTORY_DEF * TeeFactory FACTORY_NAME AttributeSplitter_2 INPUT FEATURE_TYPE ListIndexer_OUTPUT OUTPUT FEATURE_TYPE AttributeSplitter_2_OUTPUT @Tcl2(AttributeSplitter_2_doSplit) # ------------------------------------------------------------------------- Tcl2 proc ListIndexer_2_indexer {index numElements prefix} { if {$index < 0 } { set index [expr $numElements + $index]; }; regsub \"{}\" {_coords_vertex{}} \"{$index}\" listWithIndex; regsub \"{}\" {_coords_vertex{}} {} listBase; set complexListExp "$listWithIndex\."; set prefixLength [expr [string length $complexListExp]-1]; set prefix [FME_DecodeText $prefix]; foreach attr [FME_AttributeNames] { set newAttr {}; if {$attr == $listWithIndex} { set newAttr $listBase; } elseif {[string first $complexListExp $attr] == 0} { set newAttr [string replace $attr 0 $prefixLength]; }; if {$newAttr != {}} { if {$prefix != {} } { set newAttr $prefix$newAttr; }; if {[string first {fme_} $newAttr] != 0} { set first [string first {fme_} $newAttr]; lappend attrsToCopy $newAttr $attr; }; }; }; if {[info exists attrsToCopy] && [llength $attrsToCopy] > 0} { eval FME_Execute CopyAttributes $attrsToCopy; }; } FACTORY_DEF * TestFactory FACTORY_NAME ListIndexer_2_IntTester INPUT FEATURE_TYPE AttributeSplitter_2_OUTPUT TEST "0" TYPE INT ENCODED OUTPUT PASSED FEATURE_TYPE __toOutput__ FACTORY_DEF * TestFactory FACTORY_NAME ListIndexer_2_ListIndexer INPUT FEATURE_TYPE __toOutput__ TEST "0" >= 0 OUTPUT PASSED FEATURE_TYPE ListIndexer_2_OUTPUT @Tcl2("ListIndexer_2_indexer 0 0 {x}") OUTPUT FAILED FEATURE_TYPE ListIndexer_2_OUTPUT @Tcl2("ListIndexer_2_indexer 0 @NumElements(_coords_vertex{}) {x}") # ------------------------------------------------------------------------- Tcl2 proc ListIndexer_3_indexer {index numElements prefix} { if {$index < 0 } { set index [expr $numElements + $index]; }; regsub \"{}\" {_coords_vertex{}} \"{$index}\" listWithIndex; regsub \"{}\" {_coords_vertex{}} {} listBase; set complexListExp "$listWithIndex\."; set prefixLength [expr [string length $complexListExp]-1]; set prefix [FME_DecodeText $prefix]; foreach attr [FME_AttributeNames] { set newAttr {}; if {$attr == $listWithIndex} { set newAttr $listBase; } elseif {[string first $complexListExp $attr] == 0} { set newAttr [string replace $attr 0 $prefixLength]; }; if {$newAttr != {}} { if {$prefix != {} } { set newAttr $prefix$newAttr; }; if {[string first {fme_} $newAttr] != 0} { set first [string first {fme_} $newAttr]; lappend attrsToCopy $newAttr $attr; }; }; }; if {[info exists attrsToCopy] && [llength $attrsToCopy] > 0} { eval FME_Execute CopyAttributes $attrsToCopy; }; } FACTORY_DEF * TestFactory FACTORY_NAME ListIndexer_3_IntTester INPUT FEATURE_TYPE ListIndexer_2_OUTPUT TEST "1" TYPE INT ENCODED OUTPUT PASSED FEATURE_TYPE __toOutput__ FACTORY_DEF * TestFactory FACTORY_NAME ListIndexer_3_ListIndexer INPUT FEATURE_TYPE __toOutput__ TEST "1" >= 0 OUTPUT PASSED FEATURE_TYPE ListIndexer_3_OUTPUT @Tcl2("ListIndexer_3_indexer 1 0 {y}") OUTPUT FAILED FEATURE_TYPE ListIndexer_3_OUTPUT @Tcl2("ListIndexer_3_indexer 1 @NumElements(_coords_vertex{}) {y}") # ------------------------------------------------------------------------- INCLUDE [ set macroLine "MACRO AttributeRemover_LIST_EXP "; foreach attr [split "_coords_vertex"] { set attr [FME_DecodeText $attr]; set attr [regsub "{}$" $attr "{}.*"]; set attr [regsub -all "{}" $attr "\\{\[0-9\]+\\}"]; append macroLine ",^$attr$"; }; puts $macroLine; ] FACTORY_DEF {*} TeeFactory FACTORY_NAME AttributeRemover INPUT FEATURE_TYPE ListIndexer_3_OUTPUT OUTPUT { FEATURE_TYPE AttributeRemover_OUTPUT @RemoveAttributes(fme_encoded,_coords_vertex0,_coords0,_coordinates) @RemoveAttributes(fme_pcre_match"$(AttributeRemover_LIST_EXP)") } # ------------------------------------------------------------------------- FACTORY_DEF * VertexCreatorFactory FACTORY_NAME VertexCreator INPUT FEATURE_TYPE AttributeRemover_OUTPUT MODE ADD INDEX "" CONTINUE_ON_ERROR YES XVAL "@EvaluateExpression(FDIV,FLOAT,Valuex_coords_vertex,VertexCreator)" YVAL "@EvaluateExpression(FDIV,FLOAT,Valuey_coords_vertex,VertexCreator)" OUTPUT OUTPUT FEATURE_TYPE VertexCreator_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory FACTORY_NAME AttributeCreator COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE VertexCreator_OUTPUT MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { "" "position_vertex" "SET_TO" "debut" } OUTPUT OUTPUT FEATURE_TYPE AttributeCreator_OUTPUT FACTORY_DEF * TeeFactory FACTORY_NAME "AttributeCreator OUTPUT Splitter" INPUT FEATURE_TYPE AttributeCreator_OUTPUT OUTPUT FEATURE_TYPE AttributeCreator_OUTPUT_0_lQ+3mj5tm0E= OUTPUT FEATURE_TYPE AttributeCreator_OUTPUT_1_Et/p63Aqn4M= # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "Vertex_debut (Disabled) Nuker" INPUT FEATURE_TYPE AttributeCreator_OUTPUT_1_Et/p63Aqn4M= # ------------------------------------------------------------------------- FACTORY_DEF {*} DuplicateRemoverFactory FACTORY_NAME DuplicateFilter COMMAND_PARM_EVALUATION SINGLE_PASS SUPPORTS_FEATURE_TABLES INPUT FEATURE_TYPE AttributeCreator_OUTPUT_0_lQ+3mj5tm0E= INPUT FEATURE_TYPE AttributeCreator_2_OUTPUT_1_RySErNGX5NA= KEY_ATTRIBUTES { y_coords_vertex x_coords_vertex } INPUT_IS_ORDERED NO OUTPUT DUPLICATE FEATURE_TYPE DuplicateFilter_DUPLICATE OUTPUT UNIQUE FEATURE_TYPE DuplicateFilter_UNIQUE # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "DuplicateFilter_Duplicate (Disabled) Nuker" INPUT FEATURE_TYPE DuplicateFilter_DUPLICATE # ------------------------------------------------------------------------- INCLUDE [ set macroLine "MACRO AttributeRemover_3_LIST_EXP "; foreach attr [split "_coords"] { set attr [FME_DecodeText $attr]; set attr [regsub "{}$" $attr "{}.*"]; set attr [regsub -all "{}" $attr "\\{\[0-9\]+\\}"]; append macroLine ",^$attr$"; }; puts $macroLine; ] FACTORY_DEF {*} TeeFactory FACTORY_NAME AttributeRemover_3 INPUT FEATURE_TYPE DuplicateFilter_UNIQUE OUTPUT { FEATURE_TYPE AttributeRemover_3_OUTPUT @RemoveAttributes(fme_encoded,_coords,path_seq,_vertex_count,_coordinates) @RemoveAttributes(fme_pcre_match"$(AttributeRemover_3_LIST_EXP)") } # ------------------------------------------------------------------------- FACTORY_DEF {*} OverlayFactory FACTORY_NAME PointOnLineOverlayer INPUT LINE FEATURE_TYPE BulkAttributeRenamer_2_OUTPUT INPUT POINT FEATURE_TYPE AttributeRemover_3_OUTPUT TOLERANCE 1 OVERLAP_COUNT_ATTRIBUTE "_overlaps" DEAGGREGATE_INPUT Yes MERGE_ATTRS "YES" ATTR_ACCUM_MODE "HANDLE_CONFLICT" ATTR_CONFLICT_RES "ORIGINAL_IF_CONFLICT" INCOMING_PREFIX "" LIST_NAME "" LIST_ATTRS_TO_INCLUDE { } LIST_ATTRS_TO_INCLUDE_MODE CANDIDATE_LIST_NAME "" CANDIDATE_LIST_ATTRS_TO_INCLUDE { } CANDIDATE_LIST_ATTRS_TO_INCLUDE_MODE MODE COMPLETE OVERLAY_TYPE POINT_ON_LINE OUTPUT POINT FEATURE_TYPE PointOnLineOverlayer_POINT # ------------------------------------------------------------------------- FACTORY_DEF {*} OverlayFactory FACTORY_NAME PointOnAreaOverlayer INPUT POINT FEATURE_TYPE PointOnLineOverlayer_POINT INPUT POLYGON FEATURE_TYPE BulkAttributeRenamer_OUTPUT OVERLAP_COUNT_ATTRIBUTE "_overlaps" DEAGGREGATE_INPUT Yes MERGE_ATTRS "YES" ATTR_ACCUM_MODE "HANDLE_CONFLICT" ATTR_CONFLICT_RES "ORIGINAL_IF_CONFLICT" INCOMING_PREFIX "" LIST_NAME "" LIST_ATTRS_TO_INCLUDE { } LIST_ATTRS_TO_INCLUDE_MODE CANDIDATE_LIST_NAME "" CANDIDATE_LIST_ATTRS_TO_INCLUDE { } CANDIDATE_LIST_ATTRS_TO_INCLUDE_MODE MODE COMPLETE OVERLAY_TYPE POINT_ON_AREA POLYS_FIRST "NO" REJECT_INVALID_GEOM YES OUTPUT POINT FEATURE_TYPE PointOnAreaOverlayer_POINT FACTORY_DEF * TeeFactory FACTORY_NAME "PointOnAreaOverlayer POINT Splitter" INPUT FEATURE_TYPE PointOnAreaOverlayer_POINT OUTPUT FEATURE_TYPE PointOnAreaOverlayer_POINT_0_ZK7VGYHSo24= OUTPUT FEATURE_TYPE PointOnAreaOverlayer_POINT_1_x2WusK23Nmo= # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "PointOnAreaOverlayer_Point (Disabled) Nuker" INPUT FEATURE_TYPE PointOnAreaOverlayer_POINT_1_x2WusK23Nmo= # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME CoordinateSystemSetter INPUT FEATURE_TYPE PointOnAreaOverlayer_POINT_0_ZK7VGYHSo24= OUTPUT FEATURE_TYPE CoordinateSystemSetter_OUTPUT @CoordSys("EPSG:2154") # ------------------------------------------------------------------------- FACTORY_DEF * TestFactory INPUT FEATURE_TYPE CoordinateSystemSetter_OUTPUT TEST "Specify Coordinate" == "All Coordinates" OUTPUT PASSED FEATURE_TYPE CoordinateExtractor_PASSED OUTPUT FAILED FEATURE_TYPE CoordinateExtractor_FAILED FACTORY_DEF * TestFactory FACTORY_NAME CoordinateExtractor_PASSED INPUT FEATURE_TYPE CoordinateExtractor_PASSED TEST @Dimension() == 2 OUTPUT PASSED FEATURE_TYPE CoordinateExtractor_OUTPUT @ZValue("") @Coordinate(x,ALL,""{}.x,FLATTEN_AGGREGATE,YES) @Coordinate(y,ALL,""{}.y,FLATTEN_AGGREGATE,NO) @Coordinate(z,ALL,""{}.z,FLATTEN_AGGREGATE,NO) @Dimension(2) OUTPUT FAILED FEATURE_TYPE CoordinateExtractor_OUTPUT @Coordinate(x,ALL,""{}.x,FLATTEN_AGGREGATE,YES) @Coordinate(y,ALL,""{}.y,FLATTEN_AGGREGATE,NO) @Coordinate(z,ALL,""{}.z,FLATTEN_AGGREGATE,NO) FACTORY_DEF * TestFactory FACTORY_NAME CoordinateExtractor_FAILED INPUT FEATURE_TYPE CoordinateExtractor_FAILED TEST @Dimension() == 2 OUTPUT PASSED FEATURE_TYPE CoordinateExtractor_FAILED_PASSED OUTPUT FAILED FEATURE_TYPE CoordinateExtractor_OUTPUT "pk_x" @Coordinate(x,"0",FLATTEN_AGGREGATE,YES) "pk_y" @Coordinate(y,"0",FLATTEN_AGGREGATE,NO) FACTORY_DEF * TestFactory FACTORY_NAME CoordinateExtractor_FAILED_PASSED INPUT FEATURE_TYPE CoordinateExtractor_FAILED_PASSED TEST "" == "" OUTPUT PASSED FEATURE_TYPE CoordinateExtractor_OUTPUT "pk_x" @Coordinate(x,"0",FLATTEN_AGGREGATE,YES) "pk_y" @Coordinate(y,"0",FLATTEN_AGGREGATE,NO) OUTPUT FAILED FEATURE_TYPE CoordinateExtractor_OUTPUT "pk_x" @Coordinate(x,"0",FLATTEN_AGGREGATE,YES) "pk_y" @Coordinate(y,"0",FLATTEN_AGGREGATE,NO) # ------------------------------------------------------------------------- Tcl2 proc AttributeRounder_round {places} { set attrs [split {pk_y pk_x} { }]; foreach attr $attrs { set attr [FME_DecodeText $attr]; set original [FME_GetAttribute $attr]; if {$original == {} || [FME_IsAttributeNull $attr]} { FME_LogMessage fme_warn 917357 {AttributeRounder} $attr; continue; }; set comment {"do not attempt rounding if not a number"}; if {[string is double $original] == 0} {continue}; if { [catch { set multiplier [expr pow(10,$places)]; set result [expr "round($original * $multiplier) / $multiplier"]; set comment {"when rounding integers, chop trailing .0 from the value"}; if {$places == 0 || [string is wideinteger $original] == 1} { set result [regsub {[.]0*$} $result {}]; }; };] == 0 } { FME_SetAttribute $attr $result; } else { FME_LogMessage fme_warn 917350 {AttributeRounder} $attr; }; }; } FACTORY_DEF * TestFactory FACTORY_NAME AttributeRounder INPUT FEATURE_TYPE CoordinateExtractor_OUTPUT TEST "2" TYPE INT ENCODED OUTPUT PASSED FEATURE_TYPE __toOutput__ FACTORY_DEF * TeeFactory FACTORY_NAME AttributeRounder_AttributeRounder INPUT FEATURE_TYPE __toOutput__ OUTPUT FEATURE_TYPE AttributeRounder_OUTPUT @Tcl2("AttributeRounder_round 2") # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeCopier INPUT FEATURE_TYPE AttributeRounder_OUTPUT ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { "pk_y" "pk_lat" "COPY" "" } ATTR_ACTION { "pk_x" "pk_long" "COPY" "" } OUTPUT OUTPUT FEATURE_TYPE AttributeCopier_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME AttributeReprojector INPUT FEATURE_TYPE AttributeCopier_OUTPUT OUTPUT FEATURE_TYPE AttributeReprojector_OUTPUT @Reproject("EPSG:2154","LL-WGS84","pk_long","pk_lat") # ------------------------------------------------------------------------- Tcl2 proc AttributeRounder_2_round {places} { set attrs [split {longueur} { }]; foreach attr $attrs { set attr [FME_DecodeText $attr]; set original [FME_GetAttribute $attr]; if {$original == {} || [FME_IsAttributeNull $attr]} { FME_LogMessage fme_warn 917357 {AttributeRounder_2} $attr; continue; }; set comment {"do not attempt rounding if not a number"}; if {[string is double $original] == 0} {continue}; if { [catch { set multiplier [expr pow(10,$places)]; set result [expr "round($original * $multiplier) / $multiplier"]; set comment {"when rounding integers, chop trailing .0 from the value"}; if {$places == 0 || [string is wideinteger $original] == 1} { set result [regsub {[.]0*$} $result {}]; }; };] == 0 } { FME_SetAttribute $attr $result; } else { FME_LogMessage fme_warn 917350 {AttributeRounder_2} $attr; }; }; } FACTORY_DEF * TestFactory FACTORY_NAME AttributeRounder_2 INPUT FEATURE_TYPE AttributeReprojector_OUTPUT TEST "0" TYPE INT ENCODED OUTPUT PASSED FEATURE_TYPE __toOutput__ FACTORY_DEF * TeeFactory FACTORY_NAME AttributeRounder_2_AttributeRounder INPUT FEATURE_TYPE __toOutput__ OUTPUT FEATURE_TYPE AttributeRounder_2_OUTPUT @Tcl2("AttributeRounder_2_round 0") # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory COMMAND_PARM_EVALUATION SINGLE_PASS FACTORY_NAME AttributeRenamer INPUT FEATURE_TYPE AttributeRounder_2_OUTPUT ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { "municipality_nom" "municipality_name_fr" "RENAME_SET_DEFAULT" "" } ATTR_ACTION { "longueur" "length_real" "RENAME_SET_DEFAULT" "" } ATTR_ACTION { "longueur_km" "length_theorical" "RENAME_SET_DEFAULT" "" } ATTR_ACTION { "municipality_admincode" "municipality_admincode" "RENAME_SET_DEFAULT" "" } OUTPUT OUTPUT FEATURE_TYPE AttributeRenamer_OUTPUT # ------------------------------------------------------------------------- FACTORY_DEF * SortFactory FACTORY_NAME Sorter_2 INPUT FEATURE_TYPE AttributeRenamer_OUTPUT SORT_BY secteur_id NUMERIC ASCENDING troncon_id NUMERIC ASCENDING OUTPUT SORTED FEATURE_TYPE Sorter_2_SORTED # ------------------------------------------------------------------------- # Create the DomainName that this transformer will use. # Because @Count itself will evalute the expression to calculate the # domain, we don't need to do anything in Tcl per feature going by INCLUDE [ set domainPrefix {}; if { {Global} == {Local} } { set domainPrefix [FME_EncodeText {Counter_}]; }; puts "MACRO Counter_FULL_DOMAIN ${domainPrefix}pk_id"; ] FACTORY_DEF * ExecuteFunctionFactory FACTORY_NAME Counter_Rejector COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE Sorter_2_SORTED FUNCTION_DEFINITION @Count(REJECTABLE_WITH_FLAG,fme_encoded,$(Counter_FULL_DOMAIN),"@EvaluateExpression(FDIV,FLOAT,$(START$encode),Counter)") RESULT_ATTRIBUTE "pk_id" OUTPUT COMPLETE FEATURE_TYPE Counter_OUTPUT OUTPUT REJECTED FEATURE_TYPE Counter_ FACTORY_DEF * TeeFactory FACTORY_NAME "Counter OUTPUT Splitter" INPUT FEATURE_TYPE Counter_OUTPUT OUTPUT FEATURE_TYPE Counter_OUTPUT_0_/sTFA1dnbN8= OUTPUT FEATURE_TYPE Counter_OUTPUT_1_bU15iCfwGHA= OUTPUT FEATURE_TYPE Counter_OUTPUT_2_pA+nVUfM3k0= OUTPUT FEATURE_TYPE Counter_OUTPUT_3_WeyqcBK0djk= FACTORY_DEF * TeeFactory FACTORY_NAME "Counter Transformer Output Nuker" INPUT FEATURE_TYPE Counter_ # ------------------------------------------------------------------------- FACTORY_DEF {*} ConnectionFactory FACTORY_NAME LineBuilder INPUT FEATURE_TYPE Counter_OUTPUT_3_WeyqcBK0djk= ACCUM_INPUT_ATTRS One LIST_ATTRS_TO_INCLUDE { } LIST_ATTRS_TO_INCLUDE_MODE REMOVE_DUPLICATES NO OUTPUT LINE FEATURE_TYPE LineBuilder_LINE # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "pk (Disabled) Nuker" INPUT FEATURE_TYPE Counter_OUTPUT_1_bU15iCfwGHA= # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "tronçons (Disabled) Nuker" INPUT FEATURE_TYPE LengthCalculator_OUTPUT_0_mOViq6QLaFg= # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "LineCombiner_Line (Disabled) Nuker" INPUT FEATURE_TYPE LineCombiner_LINE_0_OyNlA2VcNkc= # ------------------------------------------------------------------------- FACTORY_DEF * RoutingFactory FACTORY_NAME "Destination Feature Type Routing Correlator" COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE * ROUTE FME_GENERIC Counter_OUTPUT_0_/sTFA1dnbN8= TO GEOJSON __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id,1,__wb_out_feat_type__,__nuke_me__ COORDINATE_SYSTEM EPSG:2154 GEOMETRY ROUTE FME_GENERIC LengthCalculator_OUTPUT_2_Fc3qYUDsB4Q= TO GEOJSON __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id,0,__wb_out_feat_type__,__nuke_me__ COORDINATE_SYSTEM EPSG:2154 GEOMETRY ROUTE FME_GENERIC Counter_OUTPUT_2_pA+nVUfM3k0= TO POSTGIS __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id,2,SupplyAttributesENCODED__wb_out_feat_type__phase_3_pk_auto COORDINATE_SYSTEM EPSG:2154 GEOMETRY ROUTE FME_GENERIC LineBuilder_LINE TO POSTGIS __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id,2,SupplyAttributesENCODED__wb_out_feat_type__phase_3_pk_sens_verif COORDINATE_SYSTEM EPSG:2154 GEOMETRY FEATURE_TYPE_ATTRIBUTE __wb_out_feat_type__ OUTPUT ROUTED FEATURE_TYPE * OUTPUT NOT_ROUTED FEATURE_TYPE __nuke_me__ @Tcl2("FME_StatMessage 818059 [FME_GetAttribute fme_template_feature_type] 818060 818061 fme_warn") # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "Final Output Nuker" INPUT FEATURE_TYPE __nuke_me__ # ------------------------------------------------------------------------- FACTORY_DEF * CreationFactory FACTORY_NAME VisualizerProcessor CREATE_AT_END OUTPUT FEATURE_TYPE __NUKEME__ @TCL("if [file exists {$(WORKSPACE_TEMP_DIR)}] {set files [glob -nocomplain -directory {$(WORKSPACE_TEMP_DIR)} -tails *.ffs]; if {[llength $files] == 1} { set theFile {$(WORKSPACE_TEMP_DIR)/}; append theFile [lindex $files 0]; eval FME_Execute System \173\042$(FME_HOME_UNIX)/fmedatainspector\042 --visualizer --single-application --delete-on-close --no-source-prompt -f FFS \042$theFile\042 & \175; } elseif { [llength $files] == 0 } { catch { file delete -force {$(WORKSPACE_TEMP_DIR)} }; } else { set filesNoExt {}; set lastfile {}; foreach {fileName} [lsort $files] { set fileNoExt [string trimright $fileName {.ffs}]; if [regexp {(.*)_[0-9]*$} $fileNoExt wholething fileNoExtBase] { if { $fileNoExtBase == $lastfile } { continue } }; set lastfile $fileNoExt; lappend filesNoExt $fileNoExt }; eval FME_Execute System \173\042$(FME_HOME_UNIX)/fmedatainspector\042 --visualizer --single-application --delete-on-close --no-source-prompt -d {$(WORKSPACE_TEMP_DIR)} -a ffs -f FFS $filesNoExt & \175; }; }; ") FACTORY_DEF * TeeFactory FACTORY_NAME VisualizerCleaner INPUT FEATURE_TYPE __NUKEME__ # ------------------------------------------------------------------------- POSTGIS_2_DEF phase_3_pk_auto postgis_type postgis_geometry postgis_mode "" postgis_sql_key_columns "" postgis_drop_table "" postgis_truncate_table "" fme_feature_operation INSERT fme_table_handling TRUNCATE_EXISTING postgis_create_with_oids NO postgis_create_gist_index YES postgis_spatial_column_type geometry postgis_spatial_column the_geom postgis_srid 2154 postgis_vacuum_analyze NO postgis_allow_serial_writing NO pk_id text pk_x text pk_y text pk_long text pk_lat text length_real text length_theorical text secteur_id int8 municipality_admincode text municipality_postcode text municipality_name_fr text municipality_name_br text way_osm_id text way_highway text way_type text way_oneway text way_ref text way_name_fr text way_name_br text # ------------------------------------------------------------------------- POSTGIS_2_DEF phase_3_pk_sens_verif postgis_type postgis_geometry postgis_mode "" postgis_sql_key_columns "" postgis_drop_table "" postgis_truncate_table "" fme_feature_operation INSERT fme_table_handling TRUNCATE_EXISTING postgis_create_with_oids NO postgis_create_gist_index YES postgis_spatial_column_type geometry postgis_spatial_column the_geom postgis_srid 2154 postgis_vacuum_analyze NO postgis_allow_serial_writing NO secteur_id int4