在Web GIS迅猛发展的今天,使用浏览器来进行交互以其方便性、快捷性被广大用户所推崇,那么在传输格式方面,都已比較简单的JSON或者WKT来解决网络带宽带来的数据压力。

在ArcGIS10.2版本号,已经提供了Geometry与JSON的相互转换。并且在现实业务中。Geometry与WKT的相互转换也比較多见。比如在ArcSDE环境中,用户能够使用Esri或者原生提供的函数来进行转换。

SQL> select 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技术文章

Blog:              http://blog.csdn.net/linghe301

----------------------------------------------------------------------------------

一:Geometry2WKT

1:比方以下存储在FGDB的三个多边形

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGluZ2hlMzAx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

2:创建一个TEXT类型的字段来存储WKT串。注意这个字段的长度,假设你的要素包括点比較多的话。长度可能要求比較高。我创建的字段名称为wkt。字段长度为4000.

----------------------------------------------------------------------------------

版权全部,文章同意转载。但必须以链接方式注明源地址,否则追究法律责任!

建议看到转载。请直接訪问正版链接获得最新的ArcGIS技术文章

Blog:              http://blog.csdn.net/linghe301

----------------------------------------------------------------------------------

3:创建好字段之后。打开要素类的属性表,然后选择wkt字段,右键选择Field Calculator选项

4:打开字段计算器。选择Python,输入wkt=!

SHAPE.wkt!

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGluZ2hlMzAx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

注意:!SHAPE!是Python的固有写法。并且ArcPy也提供了其它函数。比方json、wkb、area等

http://resources.arcgis.com/en/help/main/10.2/index.html#/Geometry/018z00000070000000/

----------------------------------------------------------------------------------

版权全部,文章同意转载。但必须以链接方式注明源地址,否则追究法律责任!

建议看到转载,请直接訪问正版链接获得最新的ArcGIS技术文章

Blog:              http://blog.csdn.net/linghe301

----------------------------------------------------------------------------------

5:运行之后。我们能够看到wkt字段已经存储了这些Geometry转换后的wkt串文本信息。

并且在转换过程中,并不须要ArcMap开启编辑。

用途:事实上使用这样的方法不只能够获得相关图形的WKT,也能够变相的为文件存储的数据保存历史。

意思非常明确,在编辑数据之前,我能够把原来的数据以WKT存储在某个字段中,假设编辑后发现编辑的有问题,能够使用接下来介绍的WKT2Geometry方法把图形还原回来。

----------------------------------------------------------------------------------

版权全部。文章同意转载,但必须以链接方式注明源地址,否则追究法律责任!

建议看到转载,请直接訪问正版链接获得最新的ArcGIS技术文章

Blog:              http://blog.csdn.net/linghe301

----------------------------------------------------------------------------------

二:WKT2Geometry

在进行ST_Geometry的使用或者測试过程中常常会碰到这样的情况

select 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.91198954101563 31.765422670898438,119.91009745117188 31.763774721679688,119.91009745117188 31.763774721679688))',9)) = 1

用户使用了一个WKT串来生成一个Geometry对象来进行空间查询。首先我须要验证这个WKT是什么样子的,是否正确,是否可能有查询结果,我就须要将WKT串转换成Geometry看一下,那么该功能就须要用户掌握了。

比如上面的截图,我希望将ObjectID=2的三角形更新为ObjectID=1的四边形。那我获得了ObjectID=1的WKT串就能够实现上述操作。

(该样例只说明转换方法)

----------------------------------------------------------------------------------

版权全部。文章同意转载,但必须以链接方式注明源地址。否则追究法律责任!

建议看到转载,请直接訪问正版链接获得最新的ArcGIS技术文章

Blog:              http://blog.csdn.net/linghe301

----------------------------------------------------------------------------------

1:打开属性表,选中ObjectID=2的要素,然后选择SHAPE字段右键

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGluZ2hlMzAx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

----------------------------------------------------------------------------------

版权全部。文章同意转载。但必须以链接方式注明源地址。否则追究法律责任!

建议看到转载。请直接訪问正版链接获得最新的ArcGIS技术文章

Blog:              http://blog.csdn.net/linghe301

----------------------------------------------------------------------------------

2:打开字段计算器,使用ArcPy提供的类FromWKT,里面输入字符串类型的WKT串

3:运行之后能够看到相关图形已经发生了变化

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGluZ2hlMzAx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

----------------------------------------------------------------------------------

版权全部,文章同意转载,但必须以链接方式注明源地址,否则追究法律责任!

建议看到转载。请直接訪问正版链接获得最新的ArcGIS技术文章

Blog:              http://blog.csdn.net/linghe301

----------------------------------------------------------------------------------

ArcMap中使用ArcPy实现Geometry与WKT的相互转换的更多相关文章

  1. Arcmap中加载互联网地图资源

    本文转载自:http://blog.3snews.net/space.php?uid=6955280&do=blog&id=67981 前一段时间想在Arcmap中打开互联网地图中的地 ...

  2. 如何在arcmap中调试addin或者插件

    1. 首先,在arcmap中,依次点击“自定义”->"加载项管理器",加载dll或者tlb文件 2. 其次,在vs中,依次点击“工具”->“附加到进程",在对 ...

  3. ArcMap中,如何查看当前工具是否在执行?如何将工具调到前台来执行?

    ArcMap中,如何查看当前工具是否在执行?如何将工具调到前台来执行? 描述 如何查看当前工具是否在执行?如何将工具调到前台来执行? 解决办法 后台GP执行中,可以在 Geoprocessing菜单中 ...

  4. ArcSDE for SQL Server安装及在ArcMap中创建ArcSDE连接

    原文:ArcSDE for SQL Server安装及在ArcMap中创建ArcSDE连接 安装ArcSDE for SQL Server,最后一步成功后的界面如下: 在ArcMap中创建ArcSDE ...

  5. ArcMap中"开始编辑"遇到一个或多个带有警告的图层“如果继续,可能无法编辑某些图层”的警告框

    开始编辑后可能出现的错误: 如果 ArcMap 在所选数据上启动编辑会话时遇到问题,将弹出一个对话框以提供附加信息.您可能会收到错误.警告或信息消息. 出现错误  时用户不可以启动任何编辑会话.只有解 ...

  6. [转]在Arcmap中加载互联网地图资源的4种方法

    转自http://blog.3snews.net/space.php?uid=6955280&do=blog&id=67981 前一段时间想在Arcmap中打开互联网地图中的地图数据, ...

  7. ArcGIS 网络分析[2] 在ArcMap中使用网络数据集进行五大网络分析[最短路径/服务区/最近设施点/OD成本矩阵/车辆分配]

    上一章花了大篇幅介绍网络数据集的创建,也简单说了下点线的连通性问题. 那么可以试试刀锋不锋利啦! 网络分析呢,ArcGIS提供了5个基本分析类型: 最短路径求解 服务区(服务覆盖范围) 事故突发地的最 ...

  8. 在ArcMap中发布FeatureLayer(要素图层)

    FeatureLayer(要素图层)是ArcGIS Server发布的一种很重要的地图服务,发布后使用提供的url地址就可以在代码中调用并在地图上显示.编辑这个FeatureLayer.在HTML页面 ...

  9. 将包含经纬度点位信息的Excel表格数据导入到ArcMap中并输出成shapefile

    将包含经纬信息的Excel表格数据,导入到ArcMap中并输出成shapefile,再进行后面的操作.使用这种方法可以将每一个包含经纬信息的数据在ArcMap中点出来. 一.准备数据 新建Excel表 ...

随机推荐

  1. 【HDOJ5532】Almost Sorted Array(签到)

    题意:给定一个n个数的数列,问删掉一个数之后剩余部分是否可以单调不增或单调不减 n<=1e5,a[i]<=1e5 思路:预处理一下前后缀是否合法 #include<cstdio> ...

  2. POJ 2635 The Embarrassed Cryptographer (千进制,素数筛,同余定理)

    The Embarrassed Cryptographer Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 15767   A ...

  3. [SaltStack] salt-minion启动流程

    SaltStack源码阅读 前面理了下salt-master的启动流程, 这次来看看salt-minion的启动流程. 启动salt-minion方法: /etc/init.d/salt-minion ...

  4. [MySQL] Group Commit理解

    简单的方法理解MySQL Group Commit原理 一个摆渡将乘客从A点传输到B点 MySQL 5.0 行为 在MySQL 5.0中,摆渡会在A点按顺序搭载乘客,并且传送到B点.A点和B点的来回行 ...

  5. hdu 5698(杨辉三角的性质+逆元)

    ---恢复内容开始--- 瞬间移动 Accepts: 1018 Submissions: 3620 Time Limit: 4000/2000 MS (Java/Others) Memory Limi ...

  6. Python Challenge 第十二关

    这一关依旧只有一张图,右键源代码也没有任何注释,也用PIL处理过那张图但没任何头绪,没办法只有上网搜答案. 别人的博客里说,源代码里面图片的名字是 evil1.jpg,那肯定会有 evil2.jpg. ...

  7. web前端生成图片之探索踩坑

    前段时间,产品和运营整了个非常变态的需求,要求将一个活动页面输出为图片,然后用户进行分享 开始以为是用户自己手动截图分享,没想到后来不是,细思极恐,感叹需求之变态. 从网上找了N个方案,最后确定使用  ...

  8. c++语言虚函数实现多态的原理(更新版)

    自上一个帖子之间跳过了一篇总结性的帖子,之后再发,今天主要研究了c++语言当中虚函数对多态的实现,感叹于c++设计者的精妙绝伦 c++中虚函数表的作用主要是实现了多态的机制.首先先解释一下多态的概念, ...

  9. Android - 显示手机执行的Activity

    显示手机执行的Activity 本文地址:http://blog.csdn.net/caroline_wendy 手机中,须要调试程序的界面,能够高速进行定位,使用Android开发工具ADB(And ...

  10. 【Todo】Python中文及Java中文问题及解决方法总结 & 及各种字符编码问题跟踪贴

    Python中文编码问题看这里吧:http://www.cnblogs.com/charlesblc/p/6159109.html Mysql中文编码问题可以看这篇:http://www.cnblog ...