在Web GIS迅猛发展的今天,使用浏览器来进行交互以其方便性、快捷性被广大用户所推崇,那么在传输格式方面,都已比较简单的JSON或者WKT来解决网络带宽带来的数据压力。
在ArcGIS10.X版本,已经提供了Geometry与JSON的相互转换,而且在现实业务中,Geometry与WKT的相互转换也比较多见。例如在ArcSDE环境中,用户可以使用Esri或者原生提供的函数来进行转换。
一:Geometry2WKT
1:比如下面存储在FGDB的三个多边形
2:创建一个TEXT类型的字段来存储WKT串,注意这个字段的长度,如果你的要素包含点比较多的话,长度可能要求比较高。我创建的字段名称为wkt,字段长度为4000.
3:创建好字段之后,打开要素类的属性表,然后选择wkt字段,右键选择Field Calculator选项
4:打开字段计算器,选择Python,输入wkt=!SHAPE.wkt!
注意:!SHAPE!是Python的固有写法,而且ArcPy也提供了其他函数,比如json、wkb、area等
5:执行之后,我们可以看到wkt字段已经存储了这些Geometry转换后的wkt串文本信息。而且在转换过程中,并不需要ArcMap开启编辑。
用途:其实使用这种方法不仅仅可以获得相关图形的WKT,也可以变相的为文件存储的数据保存历史。
意思很明白,在编辑数据之前,我可以把原来的数据以WKT存储在某个字段中,如果编辑后发现编辑的有问题,可以使用接下来介绍的WKT2Geometry方法把图形还原回来。
二:WKT2Geometry