WKT(Well-known text)是一种文本标记语言,用于表示矢量几何对象、空间参照系统及空间参照系统之间的转换。它的二进制表示方式,亦即WKB(well-known binary)则胜于在传输和在数据库中存储相同的信息。该格式由开放地理空间联盟(OGC)制定。使用FME的函数可以方便的在要素与WKT之间进行转换。而WKT可以作为一种格式在各平台中进行传递,比如说ArcGIS与FME。
在FME中使用Python可以有多种方式,本文介绍的是使用PythonCaller这个转换器。关于Python的函数可以查看safe官方文档,链接:http://docs.safe.com/fme/html/fmepython/。
点在魔版中经过转换器的处理被转换成了线,线经过处理又变成了面。对面不做处理,对点和线做缓冲,并将缓冲后的几何转换为WKT。
首先创建一个点,然后使用Cloner转换器复制为100个点,然后将点移动,移动后的点分以下两条数据流:
数据也分为两条数据流:
import fme
import fmeobjects
class FeatureProcessor(object):
def __init__(self):
pass
def input(self,feature):
feature.buffer(1,0)
wkt = feature.exportGeometryToOGCWKT()
feature.setAttribute('wkt',wkt)
self.pyoutput(feature)
def close(self):
pass
魔板已上传到百度云盘,感兴趣的小伙伴可以在本公众号点击FME资料,获取下载链接。本魔板名称为 转wkt并做缓冲
本文通过一个小例子展示了可以使用Py来完成转换器能做到的事情。虽然能在FME中使用Python做到很多事情,但我还是建议,能使用转换器完成的工作尽量不要去使用Py(这个要看个人喜好了),因为跟代码比较起来,转换器不仅易用,而且更便于维护。