span8
span4
你好,
我有多个线段,我想为每个线段的开始/结束添加一个度量。换句话说,我想创建一个“伪”LRS,其中度量将从特性的某些属性计算出来。
我想用python来实现这个逻辑
如果mfr是mfr,则定义为mfr . getattribute ('MEASURE_TO') mto=feature.getAttribute('MEASURE_FROM') mfr。=没有和str(生产商)! =”:setMeasure(coord[0],生产商)setMeasure(coord (n - 1),生产商feature.addCoordinates (coord)
其中setMeasure应该是measurement resetter转换器的python版本。
我该如何进行?
该FMEArc类有setMeasureValues方法。您可以使用该方法来设置两个点(开始和结束)或三个点(开始,中间和结束)的弧。这是一个将测量设为一个弧的两点的例子。
导入fmeobjects def measuretoarc (feature): try: arc = feature.getGeometry() mfr = float(feature.getAttribute('MEASURE_FROM')) mto = float(feature.getAttribute('MEASURE_TO'))setMeasureValues(False, (mfr, mto)) feature.setGeometry(arc) except Exception as ex: logger = fmeobjects.FMELogFile() logger.logMessageString(str(ex), fmeobjects.FME_ERROR) raise ex # Terminate the translation.
希望这个有帮助。
试试下面的方法:
从fmeobjects进口* def set_measure(特性):生产商= str (feature.getAttribute (MEASURE_FROM))或“mto = str (feature.getAttribute (MEASURE_TO))或“如果mfr.isdigit()和mto.isdigit():措施=[(生产商)浮动,浮动(mto)]如果feature.getGeometryType () = = FME_GEOM_LINE:行= feature.getGeometry () line.setMeasure(措施)feature.setGeometry(线)
请注意,setMeasure()要求给定列表包含的浮点数与线几何图形上的顶点数完全相同。否则你可以使用setMeasureAt(),它允许你为每个测量指定顶点索引。
线。setMeasureAt(0, measures[0]) line.setMeasureAt(line.numPoints()-1, measures[1])
更多信息在fmeobjects API文档:
http://docs.亚搏在线safe.com/fme/html/FME_Objects_Python_API/index.html
©2019安全亚搏在线软件公司法律