几何服务,cut功能测试
几何服务用于辅助应用程序执行各种几何计算,如缓冲区、简化、面积和长度计算以及投影。在 ArcGIS Server 管理器中启动几何服务之后,您才能够在应用程序开发过程中使用该服务。
问题及解决方案大致描述:
在使用几何服务的cut功能时出现错误。对于某些线要素(如,可供测试的修改前的要素)无法裁剪。后经测试找到问题原因,修改后的线要素。
如图,弯弯曲曲的线要素为裁剪目标(Target Geometries),直线要素为裁剪(Cutter)。箭头所指为问题所在。

如下两图将 裁剪目标A(绿色) 复制粘贴为 裁剪目标B(紫色) 并修改


修改后的线要素 可以被被几何服务的 cut 功能 顺利处理。
具体测试过程:
根据官方示例,几何服务使用rest链接输入参数、获取结果(都可选json格式)。json的百度百科
那么怎样直观的查看输入输出要素(即怎样在将json格式描述的要素显示在ArcMap中,以及怎样将在ArcMap中自己绘制的待测试要素导出为符合要求的json格式)。 参见链接
另外我们需要知道输出参数的含义,如下为官方示例的输出结果。
{"geometryType":"esriGeometryPolyline","geometries":[{"paths":[[[6805742.999940723,1843229.9998401403],[6805741.168907642,1843467.4288272262]],[[6805740.271927804,1843583.727151066],[6805739.999946713,1843619.0000463873]]]},{"paths":[[[6805741.168907642,1843467.4288272262],[6805740.271927804,1843583.727151066]]]},{"paths":[[[6802620.999951139,1843581.0001223981],[6805496.000106633,1844962.9999830574]]]}],"cutIndexes":[0,0,1]}
内容分别描述了 要素类型、要素坐标具体位置、cutIndexes,其中 cutIndexes是何含义呢?
观察可以发现 Paths 个数与 cutIndexes 中数字个数一致,都是3个。而Paths是运行结果,表示输入要素(官方输入裁剪目标为两个线要素)。
经过测试,"cutIndexes":[0,0,1]中,"0"表示裁剪目标的第一个, "0,0"表示被第一个要素被裁剪为两个要素。 同理 "1"表示裁剪目标的第二个, "1" 表示第二个要素未被裁剪成多个。
若第二个要素也被裁剪为两个要素。那么就会是 "cutIndexes":[0,0,1,1]。
而对于某些线要素(如,可供测试的修改前的要素),裁剪后结果显示要素未被裁剪。
未被裁剪的原因一般有二:
①裁剪目标(target)和裁剪要素(Cutter)无交点,经过上述方法得到符合标志json文件,再通过json to feature 在arcmap中查看发现二者是有交点的。
②cut功能异常。
分析过是否因为裁剪目标(target)太长了,所以出错,将其截成小段,得到json,再使用cut功能测试。在测试过程中,有的小段可以,有的不行,最终定位到只要包含某一段就不行。
那么可能是数据原因,仔细查看后,如上文图片所示,原因在于有重合的点,将其分离后,得到json并使用cut功能测试,成功了~~
重合的点指:假设画线要素时依次画了点 A、B、C、D、E、F、G .... 如下图绿色线,此时C和E位置重合,此时得到的json不能被几何服务的cut功能正常处理。
将绿色线平移,再把C、E两点分开得到紫色线。紫色线得到的json可以被几何服务的cut功能正常处理。

几何服务,cut功能测试的更多相关文章
- 几何服务,cut功能,输入要素target(修改后)内容。
几何服务,cut功能测试,输入要素target(修改后)内容. {"displayFieldName":"","fieldAliases": ...
- 几何服务,cut功能,输入要素target(修改前)内容。
几何服务,cut功能测试,输入要素target(修改前)内容. {"geometryType":"esriGeometryPolyline","geo ...
- ArcGIS 重新创建几何服务(GeometryService)
#参考官方网址:http://enterprise.arcgis.com/zh-cn/server/10.4/administer/windows/re-creating-the-geometry-s ...
- soapui中文操作手册(八)----Web服务的功能测试案例
现在,让我们来看看在一个TestCase的功能测试. 展开 Simple TestSuite并双击Simple Login and Logout w. Properties Steps. 正如你所看到 ...
- ArcGIS Server,rest路径输入要素json 格式描述
以下内容只测试了简单线, 在ArcGIS Server 的rest路径下可以对服务进行操作,如Query等,这些操作可以输入json 格式要素描述或运行得到即输出json格式要素描述. 如博客:htt ...
- ArcGIS API for JavaScript 4.3 与ArcGIS Server联动使用【地图服务】
[前言] 有好些网友问我怎么使用Server发布的地图服务了,其实非常的简单. 我在这里先声明:不提供Server软件,需要的请自行使用互联网搜索资源: 不阐述Server如何发布各各种服务,但是我会 ...
- ArcGIS 10.2之地图服务的发布、使用
2.发布地图服务 2.1 地图服务器的建立 打开ArcCatalog,在左侧的GIS Servers下,双击Add ArcGIS Server, 弹出添加界面,选择,Administer GIS服务项 ...
- 基于APM实现RPC服务和消息队列的指定消费
本文内容是基于公司现有框架整理的一篇专利文章.该框架包含完整的一套DevOps流程,包括工单系统(容器申请.服务部署等)\配置中心\路由配置中心\服务治理平台\消息治理平台\葛朗台(基于Docker+ ...
- 云原生 go-zero 微服务框架
0. go-zero介绍 go-zero是一个集成了各种工程实践的web和rpc框架.通过弹性设计保障了大并发服务端的稳定性,经受了充分的实战检验. go-zero包含极简的API定义和生成工具goc ...
随机推荐
- day1
day1.py ][][: ][: ): : ]['lock'] = 0 json.dump(userlist_message, open(userlist, 'w')) break #输错次数到3次 ...
- xml引用实体dtd不能成功的问题
你没有错,现在的浏览器都不怎么支持实体引用了,这是个无奈的现实.我记得上回试过,好像如果DTD不是单独的文件而是内置到XML里面的话,实体还可以显示的.你可以试一下 <?xml version= ...
- .NET LINQ 投影运算
投影运算 投影是指将对象转换为一种新形式的操作,该形式通常只包含那些将随后使用的属性. 通过使用投影,您可以构建依据每个对象生成的新类型. 您可以映射属性,并对该属性执行数学函数. 还可以在 ...
- AngularJS多模块开发
angularJS中的多模块开发是指多个module模块开发,步骤为: 1. 确定主模块 var app=angular.module('myApp',[]); 2. 其他的子模块添加到主模块后 ...
- LINK1123:failure during conversion to COFF:file invalid or corrupt
参考 http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=20726500&id=4528320 试了微软官方说明:http ...
- PHP【函数】
目录:[PHP函数].[PHP数组] 一.PHP常用函数(和JS一样)函数的四要素:①返回类型②函数名③参数类型④函数体因为PHP是弱类型语言,所以可以不用写返回类型,但是其他三个要素都是必须要写的. ...
- UVA766 Sum of powers(1到n的自然数幂和 伯努利数)
自然数幂和: (1) 伯努利数的递推式: B0 = 1 (要满足(1)式,求出Bn后将B1改为1 /2) 参考:https://en.wikipedia.org/wiki/Bernoulli_numb ...
- MongoDB 安装
年初换了个硬盘空间更大的vps,这下终于可以装MongoDB了. 1 配置包管理系统(yum) 建立 /etc/yum.repos.d/mongodb-org-3.2.repo文件.内容如下: [mo ...
- service 03 iis之服务器无访问权限
这两天在Service 03 的iis 6.0 里面配置一个aspx 的网站 ,总是遇到一个问题 401.2 无权限访问,于是去百度了一下好多的方法,基本上是关于设置匿名用户,打开IUSER用户 ...
- Jquery利用Iframe实现跨子域
cross_sub.html <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...