ArcMap中使⽤ArcPy实现Geometry与WKT的相互转换
在Web GIS迅猛发展的今天,使⽤浏览器来进⾏交互以其⽅便性、快捷性被⼴⼤⽤户所推崇,那么在传输格式⽅⾯,都已⽐较简单的JSON或者WKT来解决⽹络带宽带来的数据压⼒。
如何折纸船>红豆怎么做
在ArcGIS10.2版本,已经提供了Geometry与JSON的相互转换,⽽且在现实业务中,Geometry与WKT的相互转换也⽐较多见。例如在ArcSDE环境中,⽤户可以使⽤Esri或者原⽣提供的函数来进⾏转换。
SQL> lect sde.st_astext(shape) from city where objectid<8;
SDE.ST_ASTEXT(SHAPE)
---------------------------------------------------------------------
POINT Z ( 116.38094000 39.92361500 0.00000000)
POINT Z ( 117.20350000 39.13111900 0.00000000)
POINT Z ( 114.48978000 38.04512800 0.00000000)
POINT Z ( 112.56935000 37.87111300 0.00000000)
POINT Z ( 111.66330000 40.82094200 0.00000000)
POINT Z ( 123.41168000 41.79661600 0.00000000)
POINT Z ( 125.31543000 43.89256300 0.00000000)
已选择7⾏。
如果数据格式并⾮存储在SDE中,⽽是存储在⽂件格式中,怎么获得相关的WKT呢?
----------------------------------------------------------------------------------
版权所有,⽂章允许转载,但必须以链接⽅式注明源地址,否则追究法律责任!
建议看到转载,请直接访问正版链接获得最新的ArcGIS技术⽂章
----------------------------------------------------------------------------------
⼀:Geometry2WKT
1:⽐如下⾯存储在FGDB的三个多边形
2:创建⼀个TEXT类型的字段来存储WKT串,注意这个字段的长度,如果你的要素包含点⽐较多的话,长度可能要求⽐较⾼。我创建的字段名称为wkt,字段长度为4000.
----------------------------------------------------------------------------------
服务期版权所有,⽂章允许转载,但必须以链接⽅式注明源地址,否则追究法律责任!
建议看到转载,请直接访问正版链接获得最新的ArcGIS技术⽂章
----------------------------------------------------------------------------------
恒成立问题3:创建好字段之后,打开要素类的属性表,然后选择wkt字段,右键选择Field Calculator选项
4:打开字段计算器,选择Python,输⼊wkt=!SHAPE.wkt!
注意:!SHAPE!是Python的固有写法,⽽且ArcPy也提供了其他函数,⽐如json、wkb、area等
----------------------------------------------------------------------------------
版权所有,⽂章允许转载,但必须以链接⽅式注明源地址,否则追究法律责任!
建议看到转载,请直接访问正版链接获得最新的ArcGIS技术⽂章
----------------------------------------------------------------------------------
5:执⾏之后,我们可以看到wkt字段已经存储了这些Geometry转换后的wkt串⽂本信息。⽽且在转换过程中,并不需要
ArcMap开启编辑。
⽤途:其实使⽤这种⽅法不仅仅可以获得相关图形的WKT,也可以变相的为⽂件存储的数据保存历史。
意思很明⽩,在编辑数据之前,我可以把原来的数据以WKT存储在某个字段中,如果编辑后发现编辑的有问题,可以使⽤接
下来介绍的WKT2Geometry⽅法把图形还原回来。
----------------------------------------------------------------------------------
版权所有,⽂章允许转载,但必须以链接⽅式注明源地址,否则追究法律责任!
建议看到转载,请直接访问正版链接获得最新的ArcGIS技术⽂章
----------------------------------------------------------------------------------
⼆:WKT2Geometry
在进⾏ST_Geometry的使⽤或者测试过程中经常会碰到这种情况
lect ssdl, t.shape.minx x, t.shape.miny y月度工作计划
from GX_FM_PT t
where sde.st_within(t.shape,sde.st_polyfromtext('polygon((119.91009745117188 31.763774721679688,119.91198954101563 31.763774721679688,119.91198
⽤户使⽤了⼀个WKT串来⽣成⼀个Geometry对象来进⾏空间查询,⾸先我需要验证这个WKT是什么样⼦的,是否正确,
是否可能有查询结果,我就需要将WKT串转换成Geometry看⼀下,那么该功能就需要⽤户掌握了。
例如上⾯的截图,我希望将ObjectID=2的三⾓形更新为ObjectID=1的四边形,那我获得了ObjectID=1的WKT串就可以实
爱国词语现上述操作。
(该例⼦仅仅说明转换⽅法)
----------------------------------------------------------------------------------
版权所有,⽂章允许转载,但必须以链接⽅式注明源地址,否则追究法律责任!
建议看到转载,请直接访问正版链接获得最新的ArcGIS技术⽂章
-
---------------------------------------------------------------------------------
1:打开属性表,选中ObjectID=2的要素,然后选择SHAPE字段右键
----------------------------------------------------------------------------------版权所有,⽂章允许转载,但必须以链接⽅式注明源地址,否则追究法律责任!
建议看到转载,请直接访问正版链接获得最新的ArcGIS技术⽂章
----------------------------------------------------------------------------------2:打开字段计算器,使⽤ArcPy提供的
类FromWKT,⾥⾯输⼊字符串类型的WKT串
3:执⾏之后可以看到相关图形已经发⽣了变化
金骏眉茶叶功效
----------------------------------------------------------------------------------版权所有,⽂章允许转载,但必须以链接⽅式注明源地址,否则追究法律责任!
建议看到转载,请直接访问正版链接获得最新的ArcGIS技术⽂章
牛肉锅贴的做法----------------------------------------------------------------------------------