zoukankan      html  css  js  c++  java
  • 关于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

        

        

  • 相关阅读:
    C#表示空字符串
    char varchar nvarchar区别
    WCF 服务器端 上传图片
    各种算法时间复杂度
    ADO.net 对象
    走出浮躁的泥沼
    英语学习
    前端获取GridView和ASPxGridView单元格中的值
    【dfs+染色】【HDOJ】5652 India and China Origins
    【模拟】【codeforces】599B Spongebob and Joke
  • 原文地址:https://www.cnblogs.com/esrichina/p/2774165.html
Copyright © 2011-2022 走看看