关于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
文章来源:http://www.cnblogs.com/esrichina/archive/2012/11/19/2774165.html
也就是说在通过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
文章来源:http://www.cnblogs.com/esrichina/archive/2012/11/19/2774165.html
0 个评论
相关问题
- 如何优雅的使用ArcGIS知乎?
- 建设ArcGIS知乎平台的目和意义?
- ArcGIS知乎社区改进意见征集
- 苹果系统下可以使用arcgis 吗?
- arcgis版本兼容性
- 请问ArcGIS适合在局域网内用javaweb做二次开发吗?
- 请问大神们,怎么用ArcGIS做城镇间经济联系强度的图?
- ArcGIS如何求栅格图像的“质心”
- 请问arcmap如何使用多线程?
- 在Visual studio 2015 中使用 Arcgis API for JavaScript v3.16 如何实现代码智能提示?
- 在windows server2008 R2 64位中安装了portal 10.5 设置好托管arcgis server站点,并用data store为托管数据库,发布数据出错