#! #! pgrouting" # --MAX "5" # #! ATTR_TYPE_ENCODING="SDF" #! BEGIN_PYTHON="" #! BEGIN_TCL="" #! CATEGORY="" #! DESCRIPTION="" #! DESTINATION="NONE" #! DESTINATION_ROUTING_FILE="" #! DOC_EXTENTS="2196.52 1462.51" #! DOC_TOP_LEFT="58 -1549.01" #! END_PYTHON="" #! END_TCL="" #! EXPLICIT_BOOKMARK_ORDER="false" #! FME_BUILD_NUM="18592" #! FME_DOCUMENT_GUID="2a736de1-a5c5-4c96-8804-20325865f82b" #! FME_DOCUMENT_PRIORGUID="" #! FME_GEOMETRY_HANDLING="Enhanced" #! FME_IMPLICIT_CSMAP_REPROJECTION_MODE="Auto" #! FME_REPROJECTION_ENGINE="FME" #! FME_SERVER_SERVICES="" #! FME_STROKE_MAX_DEVIATION="0" #! HISTORY="" #! IGNORE_READER_FAILURE="No" #! LAST_SAVE_BUILD="FME(R) 2018.1.2.1 (20190319 - Build 18592 - macosx)" #! LAST_SAVE_DATE="2019-10-28T22:56:45" #! LOG_FILE="" #! LOG_MAX_RECORDED_FEATURES="200" #! MARKDOWN_DESCRIPTION="" #! MARKDOWN_USAGE="" #! MAX_LOG_FEATURES="200" #! MULTI_WRITER_DATASET_ORDER="BY_ID" #! PASSWORD="" #! PYTHON_COMPATIBILITY="27" #! REDIRECT_TERMINATORS="NONE" #! SHOW_ANNOTATIONS="true" #! SHOW_INFO_NODES="true" #! SOURCE="NONE" #! SOURCE_ROUTING_FILE="" #! TERMINATE_REJECTED="YES" #! TITLE="" #! USAGE="" #! USE_MARKDOWN="" #! VIEW_POSITION="-93.0009 615.006" #! WARN_INVALID_XFORM_PARAM="Yes" #! WORKSPACE_VERSION="1" #! ZOOM_SCALE="100" #! > #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! FME_PYTHON_VERSION 27 GUI IGNORE SourceDataset_POSTGIS_1,POSTGIS_IN_FME_CONNECTION_GROUP_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 DEFAULT_MACRO SourceDataset_POSTGIS redadegpgrouting GUI NAMED_DB_CONNECTION_ENCODED SourceDataset_POSTGIS FMT:POSTGIS%FAMILY:PostgreSQL Connection: DEFAULT_MACRO MAX 5 GUI FLOAT MAX Maximum Distance: INCLUDE [ if {{$(SourceDataset_POSTGIS)} == {}} { puts_real {Parameter 'SourceDataset_POSTGIS' must be given a value.}; exit 1; }; ] INCLUDE [ if {{$(MAX)} == {}} { puts_real {Parameter 'MAX' 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} SEARCH_ENVELOPE_MAXY,0,EXPOSE_ATTRS_GROUP,,CLIP_TO_ENVELOPE,NO,SEARCH_ENVELOPE_MAXX,0,SEARCH_ENVELOPE_MINY,0,SEARCH_ENVELOPE_COORDINATE_SYSTEM,,TABLELIST,public.phase_3_trace_tronconspublic.phase_5_pk_refpublic.phase_5_pk_umap,POSTGIS_EXPOSE_FORMAT_ATTRS,,DISABLE_COLLECTION_SPLITTING,yes,USE_TRUE_POSTGIS_TYPES,yes,READ_TIME_WITH_TIMEZONE,Yes,SEARCH_METHOD,MBR_OVERLAPS,_MERGE_SCHEMAS,YES,WHERE_CLAUSE,,SEARCH_ENVELOPE_MINX,0,END_SQL,,USE_SEARCH_ENVELOPE,NO,BEGIN_SQL,,FEATURES_PER_FETCH,10000,QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS,Yes,SCHEMAS_FOR_TABLE_LISTING,,NAMED_CONNECTION,redadegatpgrouting,ADVANCED, WRITER_TYPE NULL WRITER_KEYWORD NULL_DEST NULL_DEST_DATASET null #! 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) GUI NAMED_DB_CONNECTION_ENCODED SourceDataset_POSTGIS_1 FMT:POSTGIS Connection: 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_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 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 #! END_WB_HEADER #! END_HEADER LOG_FILENAME "$(FME_MF_DIR)phase_5 snap.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 # ------------------------------------------------------------------------- POSTGIS_1_READER_META_ATTRIBUTES fme_feature_type # ------------------------------------------------------------------------- MULTI_READER_CONTINUE_ON_READER_FAILURE No # ------------------------------------------------------------------------- MACRO WORKSPACE_NAME phase_5 snap 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 MULTI_READER_KEYWORD $(DATASET_KEYWORD_POSTGIS_1) INPUT FEATURE_TYPE * ROUTE POSTGIS POSTGIS_1::public.phase_5_pk_umap multi_reader_keyword,$(DATASET_KEYWORD_POSTGIS_1) TO FME_GENERIC ::public.phase_5_pk_umap ALIAS_GEOMETRY ROUTE POSTGIS POSTGIS_1::public.phase_5_pk_ref multi_reader_keyword,$(DATASET_KEYWORD_POSTGIS_1) TO FME_GENERIC ::public.phase_5_pk_ref ALIAS_GEOMETRY MERGE_INPUT Yes OUTPUT ROUTED FEATURE_TYPE * POSTGIS_1_MERGE_DEF POSTGIS_1::public.phase_5_pk_umap EXACT public.phase_5_pk_umap DEFLINE postgis_sql_where_clause,,postgis_sql_statement,,pk_id,int4PrimaryKey,secteur_id,int4 POSTGIS_1_MERGE_DEF POSTGIS_1::public.phase_3_trace_troncons EXACT public.phase_3_trace_troncons POSTGIS_1_MERGE_DEF POSTGIS_1::public.phase_5_pk_ref EXACT public.phase_5_pk_ref DEFLINE postgis_sql_where_clause,,postgis_sql_statement,,pk_id,int4PrimaryKey,pk_x,numeric81,pk_y,numeric81,pk_long,numeric108,pk_lat,numeric108,length_real,numeric62,length_theorical,int4,secteur_id,int4,municipality_admincode,text,municipality_postcode,text,municipality_name_fr,text,municipality_name_br,text,way_osm_id,int8,way_highway,text,way_type,text,way_oneway,text,way_ref,text,way_name_fr,text,way_name_br,text # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "public.phase_3_trace_troncons (POSTGIS_1) Splitter" INPUT FEATURE_TYPE public.phase_3_trace_troncons OUTPUT FEATURE_TYPE public.phase_3_trace_troncons_POSTGIS_1 # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "public.phase_5_pk_ref (POSTGIS_1) Splitter" INPUT FEATURE_TYPE public.phase_5_pk_ref OUTPUT FEATURE_TYPE public.phase_5_pk_ref_POSTGIS_1 # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "public.phase_5_pk_umap (POSTGIS_1) Splitter" INPUT FEATURE_TYPE public.phase_5_pk_umap OUTPUT FEATURE_TYPE public.phase_5_pk_umap_POSTGIS_1 DEFAULT_MACRO WB_CURRENT_CONTEXT # ------------------------------------------------------------------------- DEFAULT_MACRO INPUT_BASE_LINES FACTORY_DEF {*} ProximityFactory FACTORY_NAME NeighborFinder_2 INPUT BASE FEATURE_TYPE public.phase_5_pk_umap_POSTGIS_1 INPUT CANDIDATE FEATURE_TYPE public.phase_5_pk_ref_POSTGIS_1 GROUP_BY { pk_id } REQUIRE_BASE YES K_NEAREST "1" "" INSERT_VERTEX_ON_BASE No TAKE_MEASURES_FROM_CANDIDATE Yes COMPUTE_MEASURES_MODE CONTINUOUS REJECT_NULL Yes CANDIDATE_FEATURES_FIRST No LIST_ATTRS_TO_INCLUDE { } LIST_ATTRS_TO_INCLUDE_MODE DISTANCE_ATTR _distance TREAT_POLYGON_AS LINE NEVER_OVERWRITE_MERGED_ATTRS Yes MERGE_ATTRS "NO" ATTR_ACCUM_MODE "" ATTR_CONFLICT_RES "" INCOMING_PREFIX "" REJECT_INVALID_GEOM YES OUTPUT MATCHED FEATURE_TYPE NeighborFinder_2_MATCHED @RenameAttributes(_angle,angle,_candidate_angle,candidate_angle,_candidate_label_angle,candidate_label_angle,_closest_candidate_x,closest_candidate_x,_closest_candidate_y,closest_candidate_y,_closest_base_x,closest_base_x,_closest_base_y,closest_base_y) OUTPUT REJECTED FEATURE_TYPE NeighborFinder_2_ DEFAULT_MACRO _WB_BYPASS_TERMINATION No FACTORY_DEF * TeeFactory FACTORY_NAME NeighborFinder_2_ INPUT FEATURE_TYPE NeighborFinder_2_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, NeighborFinder_2outputaRejectedfeature.TocontinuetranslationwhenfeaturesarerejectedchangeWorkspaceParametersTranslationRejectedFeatureHandlingtoContinueTranslation) # ------------------------------------------------------------------------- # 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]} {NeighborFinder_2_Matched} _]_[expr round(rand() * 1000000)]_[clock clicks -milliseconds]"; puts "MACRO SAFE_FFS_NAME $safeName"; ] FACTORY_DEF {*} InspectorFactory FACTORY_NAME NeighborFinder_2_Matched_Prepper COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE NeighborFinder_2_MATCHED GROUP_ATTRIBUTE __inspector_feature_type_attr__ GROUP_BY { } GROUP_ATTRIBUTE_PREFIX { NeighborFinder_2_Matched } 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 NeighborFinder_2_Matched_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 pk_id,varchar255,secteur_id,varchar255,_distance,varchar255,_angle,varchar255,_candidate_angle,varchar255,_candidate_label_angle,varchar255,_closest_candidate_x,varchar255,_closest_candidate_y,varchar255,_closest_base_x,varchar255,_closest_base_y,varchar255 MODE RECORD STORE_SCANNED_METADATA RECORD_DIRECTLY_TO_DISK YES MAX_FEATURES_TO_RECORD WIN32 2000000 # ------------------------------------------------------------------------- DEFAULT_MACRO INPUT_BASE_LINES FACTORY_DEF {*} ProximityFactory FACTORY_NAME NeighborFinder INPUT CANDIDATE FEATURE_TYPE public.phase_3_trace_troncons_POSTGIS_1 REQUIRE_BASE YES K_NEAREST "1" "@EvaluateExpression(FDIV,FLOAT,$(MAX$encode),NeighborFinder)" INSERT_VERTEX_ON_BASE No TAKE_MEASURES_FROM_CANDIDATE Yes COMPUTE_MEASURES_MODE CONTINUOUS REJECT_NULL Yes CANDIDATE_FEATURES_FIRST No LIST_ATTRS_TO_INCLUDE { } LIST_ATTRS_TO_INCLUDE_MODE DISTANCE_ATTR _distance TREAT_POLYGON_AS LINE NEVER_OVERWRITE_MERGED_ATTRS Yes MERGE_ATTRS "NO" ATTR_ACCUM_MODE "" ATTR_CONFLICT_RES "" INCOMING_PREFIX "" REJECT_INVALID_GEOM YES OUTPUT MATCHED FEATURE_TYPE NeighborFinder_MATCHED @RenameAttributes(_angle,angle,_candidate_angle,candidate_angle,_candidate_label_angle,candidate_label_angle,_closest_candidate_x,closest_candidate_x,_closest_candidate_y,closest_candidate_y,_closest_base_x,closest_base_x,_closest_base_y,closest_base_y) OUTPUT REJECTED FEATURE_TYPE NeighborFinder_ DEFAULT_MACRO _WB_BYPASS_TERMINATION No FACTORY_DEF * TeeFactory FACTORY_NAME NeighborFinder_ INPUT FEATURE_TYPE NeighborFinder_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, NeighborFinderoutputaRejectedfeature.TocontinuetranslationwhenfeaturesarerejectedchangeWorkspaceParametersTranslationRejectedFeatureHandlingtoContinueTranslation) # ------------------------------------------------------------------------- # 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]} {NeighborFinder_Matched} _]_[expr round(rand() * 1000000)]_[clock clicks -milliseconds]"; puts "MACRO SAFE_FFS_NAME $safeName"; ] FACTORY_DEF {*} InspectorFactory FACTORY_NAME NeighborFinder_Matched_Prepper COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE NeighborFinder_MATCHED GROUP_ATTRIBUTE __inspector_feature_type_attr__ GROUP_BY { } GROUP_ATTRIBUTE_PREFIX { NeighborFinder_Matched } 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 NeighborFinder_Matched_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 _distance,varchar255,_angle,varchar255,_candidate_angle,varchar255,_candidate_label_angle,varchar255,_closest_candidate_x,varchar255,_closest_candidate_y,varchar255,_closest_base_x,varchar255,_closest_base_y,varchar255 MODE RECORD STORE_SCANNED_METADATA RECORD_DIRECTLY_TO_DISK YES MAX_FEATURES_TO_RECORD WIN32 2000000 # ------------------------------------------------------------------------- FACTORY_DEF * RoutingFactory FACTORY_NAME "Destination Feature Type Routing Correlator" COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE * 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__