• 关于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

        

        

  • 相关阅读:
    qt 问题及处理
    windows 依赖查看
    java基础知识
    Linux 相关
    OutLook中添加Exchange失败问题
    开源协议简介
    grail开发环境的搭建
    node+mongodb+WP构建的移动社交应用源码 分享
    INotifyPropertyChanged接口的详细说明
    WP8.1开发:后台任务详解(求推荐)
  • 原文地址:https://www.cnblogs.com/esrichina/p/2774165.html
Copyright © 2020-2023  润新知