关于ArcGIS Runtime SDK for iOS中AGSLayerDefinition使用日期类型字段过滤的问题

  今天在使用ArcGIS for iOS中AGSDynamicMapServiceLayer的AGSLayerDefinition接口时遇到一个问题,对于字符串字段可以正常过滤,而对于日期类型的字段表达式没有出现预期结果,Xcode中不会有任何提示或报错。

  也就是说在通过REST接口可以访问的where=TimeValue = date '11-16-2010 00:00:00'在ArcGIS for iOS中并不好使。

  通过抓包工具Charles抓去请求比较发现,同样的请求,在iOS中却没有返回结果;

  经过一番折腾也都没有实质性的结果。后来在涛哥的指引下,通过查看Server的日志找到了问题,非法表达式

  可以看出,代码中definition的表达式中时间格式的冒号到了服务器端后竟然莫名的没有了,将日期设置为没有时间的形式就ok,可以确认问题就是出在这个冒号上了,

  经过多次尝试转义、编码,都没有结果,后来有同事说用两个冒号试试,修改后definition=@"TimeValue = date '2010-11-16 00::00::00'";结果奇迹出现了。问题解决啦,太神奇啦!

  总结下,在ArcGIS for iOS开发中使用日期类型的字段,我们需要完成以下操作,首先确保你的Server服务器端的系统日期格式和代码中的日期格式一致。

  其次,请给代码中加上两个冒号,如TimeValue = date '2010-11-16 00::00::00

    

    

转载于:https://www.cnblogs.com/esrichina/archive/2012/11/19/2774165.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值