#! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #!

using @XValue()

"#!POSITION="2387.5386066360661 -854.75706257062541"#!TOP_LEFT="2387.5386066360661 -854.75706257062541"#!BOTTOM_RIGHT="2817.5386066360661 -853.75706257062541"#!BOUNDING_RECT="2387.5386066360661 -854.75706257062541 430 -1"#!ORDER="500000000000010"#!FOLLOW_ANCHOR="true"#!INFO_NODE="false"#!COLOUR="1,1,0.78431372549019607,0.19607843137254902"#!SIZE_POLICY="10"#!ANCHORED_NODE="35"#!/>#!
#! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #! #!
FME_PYTHON_VERSION 34#!START_HEADER#!START_WB_HEADERREADER_TYPE MULTI_READERWRITER_TYPE NULLWRITER_KEYWORD NULL_DESTNULL_DEST_DATASET null#!END_WB_HEADER#!START_WB_HEADER#!END_WB_HEADER#!END_HEADERLOG_FILENAME "$(FME_MF_DIR)PointOnLineOverlayerExample.log"LOG_APPEND NOLOG_MAX_FEATURES 200LOG_MAX_RECORDED_FEATURES 200FME_REPROJECTION_ENGINE FMEFME_IMPLICIT_CSMAP_REPROJECTION_MODE AutoFME_GEOMETRY_HANDLING EnhancedFME_STROKE_MAX_DEVIATION 0LOG_FILTER_MASK -1# -------------------------------------------------------------------------MULTI_READER_CONTINUE_ON_READER_FAILURE No# -------------------------------------------------------------------------MACRO WORKSPACE_NAME PointOnLineOverlayerExampleMACRO 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.ffsMACRO VISUALIZER_SCHEMA_FILE $(WORKSPACE_TEMP_DIR)/inspector.fscMACRO VISUALIZER_CREATE_SPATIAL_INDEX YESDEFAULT_MACRO WB_CURRENT_CONTEXT# -------------------------------------------------------------------------Tcl2 proc Creator_CoordSysRemover {} { global FME_CoordSys;set FME_CoordSys {};}MACRO Creator_XML NOT_ACTIVATEDMACRO Creator_CLASSIC NOT_ACTIVATEDMACRO Creator_2D3D 2D_GEOMETRYMACRO Creator_COORDS 0 0 10 10INCLUDE [ if { {2D Coordinate List} == {Geometry Object} } { puts {MACRO Creator_XML *} } ]INCLUDE [ if { {2D Coordinate List} == {2D Coordinate List} } { puts {MACRO Creator_2D3D 2D_GEOMETRY};puts {MACRO Creator_CLASSIC *} } ]INCLUDE [ if { {2D Coordinate List} == {3D Coordinate List} } { puts {MACRO Creator_2D3D 3D_GEOMETRY};puts {MACRO Creator_CLASSIC *} } ]INCLUDE [ if { {2D Coordinate List} == {2D Min/Max Box} } { set comment { We need to turn the COORDS which are minX minY maxX maxY into a full polygon list of coordinates };set splitCoords [split [string trim {0 0 10 10}]];if { [llength $splitCoords] > 4} { set trimmedCoords {};foreach item $splitCoords { if { $item != {} } {lappend trimmedCoords $item} };设置splitCoords trimmedCoords美元;};if { [llength $splitCoords] != 4 } { error {Creator: Coordinate list is expected to be a space delimited list of four numbers as 'minx miny maxx maxy' - `0 0 10 10' is invalid};};set minX [lindex $splitCoords 0];set minY [lindex $splitCoords 1];set maxX [lindex $splitCoords 2];set maxY [lindex $splitCoords 3];puts "MACRO Creator_COORDS $minX $minY $minX $maxY $maxX $maxY $maxX $minY $minX $minY";puts {MACRO Creator_2D3D 2D_GEOMETRY};puts {MACRO Creator_CLASSIC *} } ]FACTORY_DEF $(Creator_XML) CreationFactory FACTORY_NAME Creator_XML_Creator CREATE_AT_END no OUTPUT FEATURE_TYPE _____CREATED______ @Geometry(FROM_ENCODED_STRING, )FACTORY_DEF $(Creator_CLASSIC) CreationFactory FACTORY_NAME Creator_CLASSIC_Creator $(Creator_2D3D) $(Creator_COORDS) CREATE_AT_END no OUTPUT FEATURE_TYPE _____CREATED______FACTORY_DEF * TeeFactory FACTORY_NAME Creator_Cloner INPUT FEATURE_TYPE _____CREATED______ @Tcl2(Creator_CoordSysRemover) @CoordSys() NUMBER_OF_COPIES 1 COPY_NUMBER_ATTRIBUTE "_creation_instance" OUTPUT FEATURE_TYPE Creator_CREATED fme_feature_type CreatorFACTORY_DEF * BranchingFactory FACTORY_NAME "Creator_CREATED Brancher -1 20" INPUT FEATURE_TYPE Creator_CREATED TARGET_FACTORY "$(WB_CURRENT_CONTEXT)_CREATOR_BRANCH_TARGET" MAXIMUM_COUNT None OUTPUT PASSED FEATURE_TYPE *# -------------------------------------------------------------------------Tcl2 proc Creator_2_CoordSysRemover {} { global FME_CoordSys;set FME_CoordSys {};}MACRO Creator_2_XML NOT_ACTIVATEDMACRO Creator_2_CLASSIC NOT_ACTIVATEDMACRO Creator_2_2D3D 2D_GEOMETRYMACRO Creator_2_COORDS 0 5 4.9 5INCLUDE [ if { {2D Coordinate List} == {Geometry Object} } { puts {MACRO Creator_2_XML *} } ]INCLUDE [ if { {2D Coordinate List} == {2D Coordinate List} } { puts {MACRO Creator_2_2D3D 2D_GEOMETRY};puts {MACRO Creator_2_CLASSIC *} } ]INCLUDE [ if { {2D Coordinate List} == {3D Coordinate List} } { puts {MACRO Creator_2_2D3D 3D_GEOMETRY};puts {MACRO Creator_2_CLASSIC *} } ]INCLUDE [ if { {2D Coordinate List} == {2D Min/Max Box} } { set comment { We need to turn the COORDS which are minX minY maxX maxY into a full polygon list of coordinates };set splitCoords [split [string trim {0 5 4.9 5}]];if { [llength $splitCoords] > 4} { set trimmedCoords {};foreach item $splitCoords { if { $item != {} } {lappend trimmedCoords $item} };设置splitCoords trimmedCoords美元;};if { [llength $splitCoords] != 4 } { error {Creator_2: Coordinate list is expected to be a space delimited list of four numbers as 'minx miny maxx maxy' - `0 5 4.9 5' is invalid};};set minX [lindex $splitCoords 0];set minY [lindex $splitCoords 1];set maxX [lindex $splitCoords 2];set maxY [lindex $splitCoords 3];puts "MACRO Creator_2_COORDS $minX $minY $minX $maxY $maxX $maxY $maxX $minY $minX $minY";puts {MACRO Creator_2_2D3D 2D_GEOMETRY};puts {MACRO Creator_2_CLASSIC *} } ]FACTORY_DEF $(Creator_2_XML) CreationFactory FACTORY_NAME Creator_2_XML_Creator CREATE_AT_END no OUTPUT FEATURE_TYPE _____CREATED______ @Geometry(FROM_ENCODED_STRING, )FACTORY_DEF $(Creator_2_CLASSIC) CreationFactory FACTORY_NAME Creator_2_CLASSIC_Creator $(Creator_2_2D3D) $(Creator_2_COORDS) CREATE_AT_END no OUTPUT FEATURE_TYPE _____CREATED______FACTORY_DEF * TeeFactory FACTORY_NAME Creator_2_Cloner INPUT FEATURE_TYPE _____CREATED______ @Tcl2(Creator_2_CoordSysRemover) @CoordSys() NUMBER_OF_COPIES 1 COPY_NUMBER_ATTRIBUTE "_creation_instance" OUTPUT FEATURE_TYPE Creator_2_CREATED fme_feature_type Creator_2FACTORY_DEF * BranchingFactory FACTORY_NAME "Creator_2_CREATED Brancher -1 47" INPUT FEATURE_TYPE Creator_2_CREATED TARGET_FACTORY "$(WB_CURRENT_CONTEXT)_CREATOR_BRANCH_TARGET" MAXIMUM_COUNT None OUTPUT PASSED FEATURE_TYPE *# -------------------------------------------------------------------------FACTORY_DEF * TeeFactory FACTORY_NAME "$(WB_CURRENT_CONTEXT)_CREATOR_BRANCH_TARGET" INPUT FEATURE_TYPE * OUTPUT FEATURE_TYPE *# -------------------------------------------------------------------------FACTORY_DEF * TeeFactory FACTORY_NAME Junction INPUT FEATURE_TYPE Creator_2_CREATED INPUT FEATURE_TYPE Creator_CREATED OUTPUT FEATURE_TYPE Junction_OutputFACTORY_DEF * TeeFactory FACTORY_NAME "Junction Output Splitter" INPUT FEATURE_TYPE Junction_Output OUTPUT FEATURE_TYPE Junction_Output_0_sH9l3UTsGrw= OUTPUT FEATURE_TYPE Junction_Output_1_/QQSbUuR6ZI= OUTPUT FEATURE_TYPE Junction_Output_2_VzwNptf57aI= OUTPUT FEATURE_TYPE Junction_Output_3_Es4q/I3oBKE= OUTPUT FEATURE_TYPE Junction_Output_4_YCzeM8FpS5s=# -------------------------------------------------------------------------FACTORY_DEF * TestFactory INPUT FEATURE_TYPE Junction_Output_4_YCzeM8FpS5s= TEST "Specify Coordinate" == "All Coordinates" OUTPUT PASSED FEATURE_TYPE CoordinateExtractor_PASSED OUTPUT FAILED FEATURE_TYPE CoordinateExtractor_FAILEDFACTORY_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 "_x" @Coordinate(x,"0",FLATTEN_AGGREGATE,YES) "_y" @Coordinate(y,"0",FLATTEN_AGGREGATE,NO) "_z" @Coordinate(z,"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 "_x" @Coordinate(x,"0",FLATTEN_AGGREGATE,YES) "_y" @Coordinate(y,"0",FLATTEN_AGGREGATE,NO) OUTPUT FAILED FEATURE_TYPE CoordinateExtractor_OUTPUT "_x" @Coordinate(x,"0",FLATTEN_AGGREGATE,YES) "_y" @Coordinate(y,"0",FLATTEN_AGGREGATE,NO) @SupplyAttributes("_z","")# -------------------------------------------------------------------------FACTORY_DEF * VertexCreatorFactory FACTORY_NAME VertexCreator_2 INPUT FEATURE_TYPE CoordinateExtractor_OUTPUT MODE REPLACE INDEX " " CONTINUE_ON_ERROR YES XVAL "@EvaluateExpression(FDIV,FLOAT, Value _x ,VertexCreator_2)" YVAL "@EvaluateExpression(FDIV,FLOAT, Value _y ,VertexCreator_2)" OUTPUT OUTPUT FEATURE_TYPE VertexCreator_2_OUTPUT OUTPUT REJECTED FEATURE_TYPE VertexCreator_2_ DEFAULT_MACRO _WB_BYPASS_TERMINATION NoFACTORY_DEF * TeeFactory FACTORY_NAME VertexCreator_2_ INPUT FEATURE_TYPE VertexCreator_2_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED,VertexCreator_2 output a Rejected feature. To 继续 translation when features are rejected change Workspace Parameters Translation Rejected Feature Handling to Continue Translation )# -------------------------------------------------------------------------FACTORY_DEF * TestFactory INPUT FEATURE_TYPE Junction_Output_3_Es4q/I3oBKE= TEST "Specify Coordinate" == "All Coordinates" OUTPUT PASSED FEATURE_TYPE CoordinateExtractor_2_PASSED OUTPUT FAILED FEATURE_TYPE CoordinateExtractor_2_FAILEDFACTORY_DEF * TestFactory FACTORY_NAME CoordinateExtractor_2_PASSED INPUT FEATURE_TYPE CoordinateExtractor_2_PASSED TEST @Dimension() == 2 OUTPUT PASSED FEATURE_TYPE CoordinateExtractor_2_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_2_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_2_FAILED INPUT FEATURE_TYPE CoordinateExtractor_2_FAILED TEST @Dimension() == 2 OUTPUT PASSED FEATURE_TYPE CoordinateExtractor_2_FAILED_PASSED OUTPUT FAILED FEATURE_TYPE CoordinateExtractor_2_OUTPUT "_x" @Coordinate(x,"-1",FLATTEN_AGGREGATE,YES) "_y" @Coordinate(y,"-1",FLATTEN_AGGREGATE,NO) "_z" @Coordinate(z,"-1",FLATTEN_AGGREGATE,NO)FACTORY_DEF * TestFactory FACTORY_NAME CoordinateExtractor_2_FAILED_PASSED INPUT FEATURE_TYPE CoordinateExtractor_2_FAILED_PASSED TEST "" == "" OUTPUT PASSED FEATURE_TYPE CoordinateExtractor_2_OUTPUT "_x" @Coordinate(x,"-1",FLATTEN_AGGREGATE,YES) "_y" @Coordinate(y,"-1",FLATTEN_AGGREGATE,NO) OUTPUT FAILED FEATURE_TYPE CoordinateExtractor_2_OUTPUT "_x" @Coordinate(x,"-1",FLATTEN_AGGREGATE,YES) "_y" @Coordinate(y,"-1",FLATTEN_AGGREGATE,NO) @SupplyAttributes("_z","")# -------------------------------------------------------------------------FACTORY_DEF * VertexCreatorFactory FACTORY_NAME VertexCreator INPUT FEATURE_TYPE CoordinateExtractor_2_OUTPUT MODE REPLACE INDEX " " CONTINUE_ON_ERROR YES XVAL "@EvaluateExpression(FDIV,FLOAT, Value _x ,VertexCreator)" YVAL "@EvaluateExpression(FDIV,FLOAT, Value _y ,VertexCreator)" OUTPUT OUTPUT FEATURE_TYPE VertexCreator_OUTPUT OUTPUT REJECTED FEATURE_TYPE VertexCreator_ FACTORY_DEF * TeeFactory FACTORY_NAME "VertexCreator OUTPUT Splitter" INPUT FEATURE_TYPE VertexCreator_OUTPUT OUTPUT FEATURE_TYPE VertexCreator_OUTPUT_0_VZl5RCcnBag= OUTPUT FEATURE_TYPE VertexCreator_OUTPUT_1_R3TkNMG3XYI=DEFAULT_MACRO _WB_BYPASS_TERMINATION NoFACTORY_DEF * TeeFactory FACTORY_NAME VertexCreator_ INPUT FEATURE_TYPE VertexCreator_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED,VertexCreator output a Rejected feature. To 继续 translation when features are rejected change Workspace Parameters Translation Rejected Feature Handling to Continue Translation )# -------------------------------------------------------------------------# Assumption is that the workspace temp dir has been already set and created.See controldefs.cpp - ControlDefs::writeVisualizerTempDirDEFAULT_MACRO WORKSPACE_TEMP_DIRINCLUDE [ set 亚搏在线safeName "[regsub -all {[^a-zA-Z0-9]} {Points} _]_[expr round(rand() * 1000000)]_[clock clicks -milliseconds]";puts "MACRO 亚搏在线SAFE_FFS_NAME $safeName";]FACTORY_DEF {*} InspectorFactory FACTORY_NAME Points_Prepper COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE VertexCreator_OUTPUT_1_R3TkNMG3XYI= GROUP_ATTRIBUTE __inspector_feature_type_attr__ GROUP_BY { } GROUP_ATTRIBUTE_PREFIX { Points } 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 nicelyDEFAULT_MACRO VISUALIZER_FEATURE_FILE $(WORKSPACE_TEMP_DIR)/$(亚搏在线SAFE_FFS_NAME).ffsDEFAULT_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 Points_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 _creation_instance,varchar 255 ,_x,varchar 255 ,_y,varchar 255 ,_z,varchar 255 MODE RECORD STORE_SCANNED_METADATA RECORD_DIRECTLY_TO_DISK YES MAX_FEATURES_TO_RECORD WIN32 2000000# -------------------------------------------------------------------------# Assumption is that the workspace temp dir has been already set and created.See controldefs.cpp - ControlDefs::writeVisualizerTempDirDEFAULT_MACRO WORKSPACE_TEMP_DIRINCLUDE [ set 亚搏在线safeName "[regsub -all {[^a-zA-Z0-9]} {lines} _]_[expr round(rand() * 1000000)]_[clock clicks -milliseconds]";puts "MACRO 亚搏在线SAFE_FFS_NAME $safeName";]FACTORY_DEF {*} InspectorFactory FACTORY_NAME lines_Prepper COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE Junction_Output_2_VzwNptf57aI= GROUP_ATTRIBUTE __inspector_feature_type_attr__ GROUP_BY { } GROUP_ATTRIBUTE_PREFIX { lines } 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 nicelyDEFAULT_MACRO VISUALIZER_FEATURE_FILE $(WORKSPACE_TEMP_DIR)/$(亚搏在线SAFE_FFS_NAME).ffsDEFAULT_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 lines_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 _creation_instance,varchar 255 MODE RECORD STORE_SCANNED_METADATA RECORD_DIRECTLY_TO_DISK YES MAX_FEATURES_TO_RECORD WIN32 2000000# -------------------------------------------------------------------------FACTORY_DEF * TeeFactory FACTORY_NAME "Snapper (Disabled) Nuker" INPUT FEATURE_TYPE Junction_Output_1_/QQSbUuR6ZI=FACTORY_DEF * TeeFactory FACTORY_NAME "Snapper_SNAPPED_0_zvMb729i+TA= Disabled Nuker -1 30" INPUT FEATURE_TYPE Snapper_SNAPPED_0_zvMb729i+TA=FACTORY_DEF * TeeFactory FACTORY_NAME "Snapper_SNAPPED_1_2rj7yKfqAZ4= Disabled Nuker -1 38" INPUT FEATURE_TYPE Snapper_SNAPPED_1_2rj7yKfqAZ4=FACTORY_DEF * TeeFactory FACTORY_NAME "Snapper_SNAPPED_2_sx9wvsBbv4Q= Disabled Nuker -1 39" INPUT FEATURE_TYPE Snapper_SNAPPED_2_sx9wvsBbv4Q=# -------------------------------------------------------------------------FACTORY_DEF * TeeFactory FACTORY_NAME "Orientor (Disabled) Nuker" INPUT FEATURE_TYPE Snapper_SNAPPED_2_sx9wvsBbv4Q=FACTORY_DEF * TeeFactory FACTORY_NAME "Orientor_ORIENTED Disabled Nuker -1 40" INPUT FEATURE_TYPE Orientor_ORIENTEDDEFAULT_MACRO _WB_BYPASS_TERMINATION NoFACTORY_DEF * TeeFactory FACTORY_NAME Orientor_ INPUT FEATURE_TYPE Orientor_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED,Orientor output a Rejected feature. To 继续 translation when features are rejected change Workspace Parameters Translation Rejected Feature Handling to Continue Translation )# -------------------------------------------------------------------------FACTORY_DEF * TeeFactory FACTORY_NAME "VertexCreator_3 (Disabled) Nuker" INPUT FEATURE_TYPE Orientor_ORIENTEDFACTORY_DEF * TeeFactory FACTORY_NAME "VertexCreator_3_OUTPUT Disabled Nuker -1 42" INPUT FEATURE_TYPE VertexCreator_3_OUTPUTDEFAULT_MACRO _WB_BYPASS_TERMINATION NoFACTORY_DEF * TeeFactory FACTORY_NAME VertexCreator_3_ INPUT FEATURE_TYPE VertexCreator_3_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED,VertexCreator_3 output a Rejected feature. To 继续 translation when features are rejected change Workspace Parameters Translation Rejected Feature Handling to Continue Translation )# -------------------------------------------------------------------------FACTORY_DEF * TeeFactory FACTORY_NAME "VertexCreator_4 (Disabled) Nuker" INPUT FEATURE_TYPE Snapper_SNAPPED_1_2rj7yKfqAZ4=FACTORY_DEF * TeeFactory FACTORY_NAME "VertexCreator_4_OUTPUT Disabled Nuker -1 41" INPUT FEATURE_TYPE VertexCreator_4_OUTPUTDEFAULT_MACRO _WB_BYPASS_TERMINATION NoFACTORY_DEF * TeeFactory FACTORY_NAME VertexCreator_4_ INPUT FEATURE_TYPE VertexCreator_4_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED,VertexCreator_4 output a Rejected feature. To 继续 translation when features are rejected change Workspace Parameters Translation Rejected Feature Handling to Continue Translation )# -------------------------------------------------------------------------FACTORY_DEF * TeeFactory FACTORY_NAME "PointOnLineOverlayer_2 (Disabled) Nuker" INPUT FEATURE_TYPE VertexCreator_4_OUTPUT INPUT FEATURE_TYPE VertexCreator_3_OUTPUT INPUT FEATURE_TYPE Snapper_SNAPPED_0_zvMb729i+TA=FACTORY_DEF * TeeFactory FACTORY_NAME "PointOnLineOverlayer_2_LINE Disabled Nuker -1 43" INPUT FEATURE_TYPE PointOnLineOverlayer_2_LINEDEFAULT_MACRO _WB_BYPASS_TERMINATION NoFACTORY_DEF * TeeFactory FACTORY_NAME PointOnLineOverlayer_2_ INPUT FEATURE_TYPE PointOnLineOverlayer_2_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED,PointOnLineOverlayer_2 output a Rejected feature. To 继续 translation when features are rejected change Workspace Parameters Translation Rejected Feature Handling to Continue Translation )# -------------------------------------------------------------------------FACTORY_DEF * TeeFactory FACTORY_NAME "Snapped_Line (Disabled) Nuker" INPUT FEATURE_TYPE PointOnLineOverlayer_2_LINE# -------------------------------------------------------------------------FACTORY_DEF {*} OverlayFactory FACTORY_NAME PointOnLineOverlayer INPUT LINE FEATURE_TYPE Junction_Output_0_sH9l3UTsGrw= INPUT POINT FEATURE_TYPE VertexCreator_2_OUTPUT INPUT POINT FEATURE_TYPE VertexCreator_OUTPUT_0_VZl5RCcnBag= TOLERANCE 0.2 OVERLAP_COUNT_ATTRIBUTE "_overlaps" DEAGGREGATE_INPUT Yes MERGE_ATTRS "NO" ATTR_ACCUM_MODE " " ATTR_CONFLICT_RES " " 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 LINE FEATURE_TYPE PointOnLineOverlayer_LINE OUTPUT ILLEGAL_GEOM FEATURE_TYPE PointOnLineOverlayer_ DEFAULT_MACRO _WB_BYPASS_TERMINATION NoFACTORY_DEF * TeeFactory FACTORY_NAME PointOnLineOverlayer_ INPUT FEATURE_TYPE PointOnLineOverlayer_ OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED,PointOnLineOverlayer output a Rejected feature. To 继续 translation when features are rejected change Workspace Parameters Translation Rejected Feature Handling to Continue Translation )# -------------------------------------------------------------------------# Assumption is that the workspace temp dir has been already set and created.See controldefs.cpp - ControlDefs::writeVisualizerTempDirDEFAULT_MACRO WORKSPACE_TEMP_DIRINCLUDE [ set 亚搏在线safeName "[regsub -all {[^a-zA-Z0-9]} {PointOnLineOverlayer_Line} _]_[expr round(rand() * 1000000)]_[clock clicks -milliseconds]";puts "MACRO 亚搏在线SAFE_FFS_NAME $safeName";]FACTORY_DEF {*} InspectorFactory FACTORY_NAME PointOnLineOverlayer_Line_Prepper COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE PointOnLineOverlayer_LINE GROUP_ATTRIBUTE __inspector_feature_type_attr__ GROUP_BY { } GROUP_ATTRIBUTE_PREFIX { PointOnLineOverlayer_Line } 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 nicelyDEFAULT_MACRO VISUALIZER_FEATURE_FILE $(WORKSPACE_TEMP_DIR)/$(亚搏在线SAFE_FFS_NAME).ffsDEFAULT_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 PointOnLineOverlayer_Line_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 _creation_instance,varchar 255 ,_overlaps,varchar 255 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 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 INPUT FEATURE_TYPE __NUKEME__