设置layerDefinition后,地图符号发生改变。

在mxd中针对图层使用了layer Definition条件过滤,并从单一数据源分出不同的图层。发布服务后,在rest服务中再次针对图层应用layerDefinition时,地图符号丢失。
已邀请:

马克玲

赞同来自:

【问题分析】:
这个现象并不是因为多层layerDefinition干扰引起的,错误结果也不是地图符号发生了改变。之所以导致用户认为查询返回了错误的符号,是因为rest中定义的layerDefinition会覆盖掉mxd中的过滤条件,第0层数据返回了全部的查询数据,相同的数据源点位,导致0层数据覆盖了下层的要素符号。简单的说,错误现象是由于rest中新定义的查询并不是在mxd 中过滤后的子集中进行查询的,而是基于原始数据源进行的查询。
这个问题已经被esri确认为bug,并且在server 10.2版本中修复。同样的查询条件,在10.1版本返回的是数据集全部数据,而10.2版本返回的是mxd过滤后的子集数据,这一结论已经经过测试校验。
【解决办法】:
针对这个问题,可以参考以下规避办法:
1、将产品升级为10.2;
2、如果项目只能在10.1版本完成,可以把mxd中的layerDefinition也放到前端rest服务中执行,例如:
{0:SBSJ_SYS < date '2014-01-01 00:00:00' and SFCC = '已拆' AND SCZT = '1' AND STJD in ('大概标','定点标')}

要回复问题请先登录注册