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

为什么是4个对象而不是5个对象被传递?


不应该有:

  1. a - 1
  2. a -
  3. a - 3
  4. b - 2
  5. B-4
" # !POSITION="1107.18 211.506" #! TOP_LEFT="1107.18 211.506" #! BOTTOM_RIGHT="1857.18 161.506" #! BOUNDING_RECT="1107.18 211.506 750 50" #! ORDER="5e+14" #! FOLLOW_ANCHOR="true" #! INFO_NODE="false" #! COLOUR="1,1,0.784314,0.196078" #! SIZE_POLICY="10" #! COMMENT_TYPE="REGULAR" #! ANCHORED_NODE="0" #! /> #!
# ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # ! # !
FME_PYTHON_VERSION 27 GUI忽略SourceDataset_ESRISHAPE_1,ESRISHAPE_IN_ENCODING_ESRISHAPE_1,ESRISHAPE_IN_EXPOSE_ATTRS_GROUP_ESRISHAPE_1,ESRISHAPE_IN_SEARCH_ENVELOPE_MINX_ESRISHAPE_1,ESRISHAPE_IN_SEARCH_ENVELOPE_MINY_ESRISHAPE_1,ESRISHAPE_IN_SEARCH_ENVELOPE_MAXX_ESRISHAPE_1,ESRISHAPE_IN_SEARCH_ENVELOPE_MAXY_ESRISHAPE_1,ESRISHAPE_IN_SEARCH_ENVELOPE_COORDINATE_SYSTEM_ESRISHAPE_1,ESRISHAPE_IN_CLIP_TO_ENVELOPE_ESRISHAPE_1,ESRISHAPE_IN_ADVANCED_ESRISHAPE_1,ESRISHAPE_IN_TRIM_PRECEDING_SPACES_ESRISHAPE_1,ESRISHAPE_IN_GEOMETRY_ESRISHAPE_1,ESRISHAPE_IN_SIMPLE_DONUT_GEOMETRY_ESRISHAPE_1,ESRISHAPE_IN_MEASURES_AS_Z_ESRISHAPE_1,ESRISHAPE_IN_DISSOLVE_HOLES_ESRISHAPE_1,ESRISHAPE_IN_REPORT_BAD_GEOMETRY_ESRISHAPE_1,ESRISHAPE_IN_NETWORK_AUTHENTICATION_ESRISHAPE_1 DEFAULT_MACRO SourceDataset_ESRISHAPE $(FME_MF_DIR)testInput.zip GUI MULTIFILE SourceDataset_ESRISHAPE Shapefiles(*.shp)|*.shp|Compressed_Shapefiles(*.shz)|*.shz|All_Files(*)|* Source Esri Shapefile(s): INCLUDE [ if {{$(SourceDataset_ESRISHAPE)} == {}} { puts_real {Parameter 'SourceDataset_ESRISHAPE' must be given a value.};退出1;};)# !START_HEADER # !START_WB_HEADER READER_TYPE ESRISHAPE READER_KEYWORD ESRISHAPE_1 reader_gen_。CHECK_NUMERIC_FIELDS,yes,SEARCH_ENVELOPE_MAXX,0,MEASURES_AS_Z,no,ADVANCED,,GEOMETRY,,SEARCH_ENVELOPE_COORDINATE_SYSTEM,,READER_PARAMETERS,,USE_SEARCH_ENVELOPE,NO,SIMPLE_DONUT_GEOMETRY,simple,REPORT_BAD_GEOMETRY,no,SEARCH_ENVELOPE_MINY,0,EXPOSE_ATTRS_GROUP,,UPPER_CASE_ATTR_NAMES,No,SEARCH_ENVELOPE_MINX,0,TRIM_PRECEDING_SPACES,yes,ENCODING,,_MERGE_SCHEMAS,YES,ESRISHAPE_EXPOSE_FORMAT_ATTRS,,SEARCH_ENVELOPE_MAXY,0,DISSOLVE_HOLES,no,CLIP_TO_ENVELOPE,NO WRITER_TYPE NULL WRITER_KEYWORD NULL_DEST NULL_DEST_DATASET null #!END_WB_HEADER # !宏WB_KEYWORD“ESRISHAPE_1”#!END_WB_HEADER # !START_SOURCE_HEADER ESRISHAPE ESRISHAPE_1 # = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = #下面的GUI行提示输入源shapefile #数据集生成映射文件是:# !END_SOURCE_HEADER # !START_WB_HEADER DEFAULT_MACRO SourceDataset包括[if {{$(SourceDataset)} != ""} {\ put {DEFAULT_MACRO SourceDataset_ESRISHAPE_1 $(SourceDataset)}} #!END_WB_HEADER # !START_SOURCE_HEADER ESRISHAPE ESRISHAPE_1 DEFAULT_MACRO SourceDataset_ESRISHAPE_1 $ (SourceDataset_ESRISHAPE) GUI多文件SourceDataset_ESRISHAPE_1 Shapefile (* .shp) | * .shp | Compressed_Shapefiles (* .shz) | * .shz | All_Files(*) | *源Esri Shapefile (s): # = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = #提供一些控制属性的用户选择#编码应用。通常,所有属性在被# read之后更新,但是下面的代码行排除了名称以fme_或shape_开头的所有#属性。ESRISHAPE_1_UNENCODED_ATTR_PREFIX fme_ shape_ #为溶洞添加默认值,使DI的默认值与workbench DEFAULT_MACRO ESRISHAPE_IN_DISSOLVE_HOLES_ESRISHAPE_1 no ESRISHAPE_1_DISSOLVE_HOLES一致# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = #决定属性名称应该大写,或者他们是否#应该保持shapefile中指定。一旦生成了映射文件/workspace #,就不应该更改这个关键字的值。“$(ESRISHAPE_IN_UPPER_CASE_ATTR_NAMES_ESRISHAPE_1)” # ============================================================================ # The following keyword allows the user to choose what encoding to # use for reading the shapefile, overrides dbf file LDID or .cpg # file if present.DEFAULT_MACRO ESRISHAPE_IN_ENCODING_ESRISHAPE_1 ESRISHAPE_1_ENCODING “$(ESRISHAPE_IN_ENCODING_ESRISHAPE_1)” GUI可选的编码ESRISHAPE_IN_ENCODING_ESRISHAPE_1 ANSI%SYSTEM%BIG5%EUC%HKBIG5%ISO%OEM%SJIS%UTF-8%CP437%CP708%CP720%CP737%CP775%CP850%CP852%CP855%CP857%CP860%CP861%CP862%CP863%CP864%CP865%CP866%CP869%CP874%CP932%CP936%CP950%CP1250%CP1251%CP1252%CP1253%CP1254%CP1255%CP1256%CP1257%CP1258%ISO8859-1%ISO8859-2%ISO8859-3%ISO8859-4%ISO8859-5%ISO8859-6%ISO8859-7%ISO8859-8%ISO8859-9%ISO-8859-11%ISO8859-13 ISO8859-15%WINDOWS%-874字符编码#Note: Using the search envelope requires the shape index files (.sbnand.sbx) DEFAULT_MACRO ESRISHAPE_IN_EXPOSE_ATTRS_GROUP_ESRISHAPE_1 ESRISHAPE_1_EXPOSE_ATTRS_GROUP "$(ESRISHAPE_IN_EXPOSE_ATTRS_GROUP_ESRISHAPE_1)" GUI OPTIONAL DISCLOSUREGROUP ESRISHAPE_IN_EXPOSE_ATTRS_GROUP_ESRISHAPE_1 ESRISHAPE_IN_ESRISHAPE_EXPOSE_FORMAT_ATTRS Schema Attributes # 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 ESRISHAPE_IN_SEARCH_ENVELOPE_MINX_ESRISHAPE_1 0 ESRISHAPE_1_SEARCH_ENVELOPE "$(ESRISHAPE_IN_SEARCH_ENVELOPE_MINX_ESRISHAPE_1)" GUI OPTIONAL FLOAT ESRISHAPE_IN_SEARCH_ENVELOPE_MINX_ESRISHAPE_1 Minimum X: # =========================================================================== DEFAULT_MACRO ESRISHAPE_IN_SEARCH_ENVELOPE_MINY_ESRISHAPE_1 0 ESRISHAPE_1_SEARCH_ENVELOPE "$(ESRISHAPE_IN_SEARCH_ENVELOPE_MINY_ESRISHAPE_1)" GUI OPTIONAL FLOAT ESRISHAPE_IN_SEARCH_ENVELOPE_MINY_ESRISHAPE_1 Minimum Y: # =========================================================================== DEFAULT_MACRO ESRISHAPE_IN_SEARCH_ENVELOPE_MAXX_ESRISHAPE_1 0 ESRISHAPE_1_SEARCH_ENVELOPE "$(ESRISHAPE_IN_SEARCH_ENVELOPE_MAXX_ESRISHAPE_1)" GUI OPTIONAL FLOAT ESRISHAPE_IN_SEARCH_ENVELOPE_MAXX_ESRISHAPE_1 Maximum X: # =========================================================================== DEFAULT_MACRO ESRISHAPE_IN_SEARCH_ENVELOPE_MAXY_ESRISHAPE_1 0 ESRISHAPE_1_SEARCH_ENVELOPE "$(ESRISHAPE_IN_SEARCH_ENVELOPE_MAXY_ESRISHAPE_1)" GUI OPTIONAL FLOAT ESRISHAPE_IN_SEARCH_ENVELOPE_MAXY_ESRISHAPE_1 Maximum Y: # =========================================================================== DEFAULT_MACRO ESRISHAPE_IN_SEARCH_ENVELOPE_COORDINATE_SYSTEM_ESRISHAPE_1 ESRISHAPE_1_SEARCH_ENVELOPE "$(ESRISHAPE_IN_SEARCH_ENVELOPE_COORDINATE_SYSTEM_ESRISHAPE_1)" GUI OPTIONAL COORDSYS ESRISHAPE_IN_SEARCH_ENVELOPE_COORDINATE_SYSTEM_ESRISHAPE_1 Search Envelope Coordinate System: # =========================================================================== DEFAULT_MACRO ESRISHAPE_IN_CLIP_TO_ENVELOPE_ESRISHAPE_1 NO ESRISHAPE_1_CLIP_TO_ENVELOPE "$(ESRISHAPE_IN_CLIP_TO_ENVELOPE_ESRISHAPE_1)" GUI OPTIONAL CHECKBOX ESRISHAPE_IN_CLIP_TO_ENVELOPE_ESRISHAPE_1 YES%NO Clip to Search Envelope DEFAULT_MACRO ESRISHAPE_IN_CHECK_NUMERIC_FIELDS_ESRISHAPE_1 yes ESRISHAPE_1_CHECK_NUMERIC_FIELDS "$(ESRISHAPE_IN_CHECK_NUMERIC_FIELDS_ESRISHAPE_1)" DEFAULT_MACRO ESRISHAPE_IN_ADVANCED_ESRISHAPE_1 GUI OPTIONAL DISCLOSUREGROUP ESRISHAPE_IN_ADVANCED_ESRISHAPE_1 ESRISHAPE_IN_TRIM_PRECEDING_SPACES_ESRISHAPE_1%ESRISHAPE_IN_GEOMETRY_ESRISHAPE_1 Advanced DEFAULT_MACRO ESRISHAPE_IN_TRIM_PRECEDING_SPACES_ESRISHAPE_1 yes ESRISHAPE_1_TRIM_PRECEDING_SPACES "$(ESRISHAPE_IN_TRIM_PRECEDING_SPACES_ESRISHAPE_1)" GUI CHOICE ESRISHAPE_IN_TRIM_PRECEDING_SPACES_ESRISHAPE_1 yes%no Trim Preceding Spaces DEFAULT_MACRO ESRISHAPE_IN_GEOMETRY_ESRISHAPE_1 GUI OPTIONAL DISCLOSUREGROUP ESRISHAPE_IN_GEOMETRY_ESRISHAPE_1 ESRISHAPE_IN_SIMPLE_DONUT_GEOMETRY_ESRISHAPE_1%ESRISHAPE_IN_MEASURES_AS_Z_ESRISHAPE_1%ESRISHAPE_IN_DISSOLVE_HOLES_ESRISHAPE_1%ESRISHAPE_IN_REPORT_BAD_GEOMETRY_ESRISHAPE_1 Geometry # ============================================================================ # Option to use simple donut geometry creation, which is faster than the # original creation method, but less meticulous at detecting and correcting # geometric anomalies (i.e.holeswithinholes) DEFAULT_MACRO ESRISHAPE_IN_SIMPLE_DONUT_GEOMETRY_ESRISHAPE_1 simple ESRISHAPE_1_SIMPLE_DONUT_GEOMETRY "$(ESRISHAPE_IN_SIMPLE_DONUT_GEOMETRY_ESRISHAPE_1)" GUI LOOKUP_CHOICE ESRISHAPE_IN_SIMPLE_DONUT_GEOMETRY_ESRISHAPE_1 "\"Orientation Only\",simple"%"\"Orientation and Spatial Relationship\",complex" Donut Geometry Detection # ============================================================================ # The following GUI line sets whether measure values in the shapefiles should # be treated as elevations.DEFAULT_MACRO ESRISHAPE_IN_MEASURES_AS_Z_ESRISHAPE_1没有ESRISHAPE_1_MEASURES_AS_Z “$(ESRISHAPE_IN_MEASURES_AS_Z_ESRISHAPE_1)” GUI CHOICE ESRISHAPE_IN_MEASURES_AS_Z_ESRISHAPE_1是%不款待措施高程#============================================================================#以下 keyword sets whether the reader dissolves holes in donuts.ESRISHAPE_1_DISSOLVE_HOLES “$(ESRISHAPE_IN_DISSOLVE_HOLES_ESRISHAPE_1)” GUI CHOICE ESRISHAPE_IN_DISSOLVE_HOLES_ESRISHAPE_1是%不溶解相邻孔#============================================================================#以下关键字设置是否坏 geometry should be reported via # the shape_geometry_error{} list attribute.DEFAULT_MACRO ESRISHAPE_IN_REPORT_BAD_GEOMETRY_ESRISHAPE_1没有ESRISHAPE_1_REPORT_BAD_GEOMETRY “$(ESRISHAPE_IN_REPORT_BAD_GEOMETRY_ESRISHAPE_1)” GUI CHOICE ESRISHAPE_IN_REPORT_BAD_GEOMETRY_ESRISHAPE_1是%不报告几何异常#=========================================================================== DEFAULT_MACRO ESRISHAPE_IN_NETWORK_AUTHENTICATION_ESRISHAPE_1 ESRISHAPE_1_NETWORK_AUTHENTICATION“$(ESRISHAPE_IN_NETWORK_AUTHENTICATION_ESRISHAPE_1)" GUI OPTIONAL AUTHENTICATOR ESRISHAPE_IN_NETWORK_AUTHENTICATION_ESRISHAPE_1 CONTAINER%GROUP%CONTAINER_TITLE%"Network Authentication"%PROMPT_TYPE%NETWORK Network Authentication # =========================================================================== DEFAULT_MACRO ESRISHAPE_IN_ATTRIBUTE_READING_ESRISHAPE_1 ALL ESRISHAPE_1_ATTRIBUTE_READING "$(ESRISHAPE_IN_ATTRIBUTE_READING_ESRISHAPE_1)" ESRISHAPE_1_DATASET "$(SourceDataset_ESRISHAPE_1)" #!END_SOURCE_HEADER # !START_WB_HEADER#!END_WB_HEADER # !END_HEADER LOG_FILENAME “$(FME_MF_DIR)FME_SpatialFilter_Query_esrishape2none.log” LOG_APPEND NO LOG_MAX_FEATURES 200个LOG_MAX_RECORDED_FEATURES 200 FME_REPROJECTION_ENGINE FME FME_IMPLICIT_CSMAP_REPROJECTION_MODE自动FME_GEOMETRY_HANDLING增强FME_STROKE_MAX_DEVIATION 0 LOG_FILTER_MASK -1 DEFAULT_MACRO DATASET_KEYWORD_ESRISHAPE_1 ESRISHAPE_1#------------------------------------------------------------------------- ESRISHAPE_1_READER_META_ATTRIBUTES fme_feature_type # ------------------------------------------------------------------------- MULTI_READER_CONTINUE_ON_READER_FAILURE No # ------------------------------------------------------------------------- MACRO WORKSPACE_NAME FME_SpatialFilter_Query_esrishape2none 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;集gVisualizerTemp $ gVisualizerTemp / $ {wsname} _ [时钟格式[时钟秒] -format%H%M%S];看跌期权 “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#------------------------------------------------------------------------- ESRISHAPE_1_DEF地区SHAPE_GEOMETRY shape_polygon ID_Area char(1) # ------------------------------------------------------------------------- ESRISHAPE_1_DEF Tiles SHAPE_GEOMETRY shape_polygon ID_Tile short # ------------------------------------------------------------------------- FACTORY_DEF * RoutingFactory FACTORY_NAME "Router and Unexpected Input Remover" COMMAND_PARM_EVALUATION SINGLE_PASS MULTI_READER_KEYWORD ESRISHAPE_1 INPUT FEATURE_TYPE * ROUTE ESRISHAPE ESRISHAPE_1::Areas TO FME_GENERIC ::Areas ALIAS_GEOMETRY ROUTE ESRISHAPE ESRISHAPE_1::Tiles TO FME_GENERIC ::Tiles ALIAS_GEOMETRY MERGE_INPUT Yes OUTPUT ROUTED FEATURE_TYPE * ESRISHAPE_1_MERGE_DEF ESRISHAPE_1::Areas EXACT Areas ESRISHAPE_1_MERGE_DEF ESRISHAPE_1::Tiles EXACT Tiles # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "Areas (ESRISHAPE_1) Splitter" INPUT FEATURE_TYPE Areas OUTPUT FEATURE_TYPE Areas_ESRISHAPE_1 # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "Tiles (ESRISHAPE_1) Splitter" INPUT FEATURE_TYPE Tiles OUTPUT FEATURE_TYPE Tiles_ESRISHAPE_1 DEFAULT_MACRO WB_CURRENT_CONTEXT # ------------------------------------------------------------------------- FACTORY_DEF * SpatialFilterFactory FACTORY_NAME SpatialFilter INPUT BASE FEATURE_TYPE Areas_ESRISHAPE_1 INPUT CANDIDATE FEATURE_TYPE Tiles_ESRISHAPE_1 PREDICATE "INTERSECTS" USE_BOUNDING_BOX NO MULTIPLE_BASES YES MERGE_BASE_ATTR YES ATTR_ACCUM_MODE "HANDLE_CONFLICT" ATTR_CONFLICT_RES "CANDIDATE_IF_CONFLICT" BASE_ATTR_PREFIX " Yes拒绝类型SpatialFilter_输出通过FEATURE_TYPE SpatialFilter_PASSED输出失败FEATURE_TYPE SpatialFilter_FAILED输出拒绝FEATURE_TYPE SpatialFilter_ DEFAULT_MACRO _WB_BYPASS_TERMINATION No FACTORY_DEF * TeeFactory FACTORY_NAME SpatialFilter_ 输入FEATURE_TYPE SpatialFilter_ 输出失败的FEATURE_TYPE * @Abort(ENCODED, SpatialFilter 输出 一个 拒绝了 特性。 继续 翻译 特性 拒绝了 改变 工作空间 参数 翻译 拒绝了 功能 处理 继续 翻译 )# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #假设是工作区临时dir已经设置和创建。看到controldefs.cpp——ControlDefs: writeVisualizerTempDir DEFAULT_MACRO WORKSPACE_TEMP_DIR FACTORY_DEF * InspectorFactory FACTORY_NAME Inspector_2_Prepper COMMAND_PARM_EVALUATION SINGLE_PASS输入FEATURE_TYPE SpatialFilter_FAILED GROUP_ATTRIBUTE __inspector_feature_type_attr__ GROUP_BY GROUP_ATTRIBUTE_PREFIX Inspector_2 RASTER_REDUCTION NoReduction POINT_CLOUD_REDUCTION NO_THINNING输出结果FEATURE_TYPE __viewme__ #现在路线的所有特性到录音机,将它们的# feature类型更改为transformer名称,这样它们就可以很好地查看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 Inspector_2_Recorder COMMAND_PARM_EVALUATION SINGLE_PASS输入FEATURE_TYPE __viewme__ _wb_termination_feature是的@FeatureType (TERMINATOR_@Value (_wb_termination_xformer))输入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)"检查员" $ (VISUALIZER_CREATE_SPATIAL_INDEX) "FSC_SCHEMA ID_Tile、varchar 255 模式记录STORE_SCANNED_METADATA RECORD_DIRECTLY_TO_DISK是的MAX_FEATURES_TO_RECORD WIN32 2000000 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #假设是工作区临时dir已经设置和创建。看到controldefs.cpp——ControlDefs: writeVisualizerTempDir DEFAULT_MACRO WORKSPACE_TEMP_DIR FACTORY_DEF * InspectorFactory FACTORY_NAME Inspector_Prepper COMMAND_PARM_EVALUATION SINGLE_PASS输入FEATURE_TYPE SpatialFilter_PASSED GROUP_ATTRIBUTE __inspector_feature_type_attr__ GROUP_BY GROUP_ATTRIBUTE_PREFIX检查员RASTER_REDUCTION NoReduction POINT_CLOUD_REDUCTION NO_THINNING输出结果FEATURE_TYPE __viewme__ #现在路线的所有特性到录音机,将它们的# feature类型更改为transformer名称,这样它们就可以很好地查看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 Inspector_Recorder COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE __viewme__ _wb_termination_feature是@FeatureType(TERMINATOR_ @值(_wb_termination_xformer))输入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)”检查员 “$(VISUALIZER_CREATE_SPATIAL_INDEX)” FSC_SCHEMA ID_Area,VARCHAR 255 ,ID_Tile,VARCHAR 255 ,_predicate,VARCHAR 255 模式录制STORE_SCANNED_METADATA RECORD_DIRECTLY_TO_DISK是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 $theFile & \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__