attributeFilter添加筛选日期条件

0 投票
iserver 8c

new SuperMap.REST.FilterParameter({
                name: "dataSet@dataSource",
                attributeFilter: "BuyDate < '2016-7-8'"
            });

怎么实现对数据集中日期字段的过滤。
3月 9, 2017 分类:  851次浏览 | 用户: 超凡 (3 分)

1个回答

0 投票

请问你的数据源是文件型的吗,文件型数据源的日期字段的过滤条件应该这样写:“字段名=to_date(YYYY-MM-DD HH:MM:SS) ”

3月 9, 2017 用户: 李晓 学富五车 (633 分)

查询某个时间段的构建方式:“字段名 Between to_date(YYYY-MM-DD HH:MM:SS) and to_date(YYYY-MM-DD HH:MM:SS)”

你可以看一下“SuperMap iClient for JavaScript查询过滤条件构建”这篇博客的第二条,里面有例子,博客地址:http://blog.csdn.net/supermapsupport/article/details/53910299
是的,那么如果使用这个类发送请求

getFeatureBySQLService = new SuperMap.REST.GetFeaturesBySQLService(url2, {
            eventListeners: {"processCompleted": processCompleted, "processFailed": processFailed}});

getFeatureBySQLService.processAsync(getFeatureBySQLParams);

获取的结果多于20个该怎么显示, 而且我的数据集是excel属性转点的数据集,怎么把获取的点显示在地图上。vectorLayer.addFeatures(feature);这个方法没有在地图上显示相应的点啊。

function processCompleted(getFeaturesEventArgs) {

var i, len, features, feature, result = getFeaturesEventArgs.result,l=0;
            if (result && result.features) {
                features = result.features;
                for (i=0, len=features.length; i<len; i++) {
                    feature = features[i];
                    feature.style = style;
                    vectorLayer.addFeatures(feature);
                }
            }}
1、要想获取的结果多于20个,可以将GetFeaturesBySQLParameters的toIndex设置成-1即能返回所有结果
2、在地图上没有添加上相应的点,你看一下浏览器有报错吗?把具体的报错粘出来看看

浏览器没有报错,feature里边是有数据的,返回的feature.geometry的值:

(示例)POINT(110.299 31.473)

图层也添加到map里面了

vectorLayer = new SuperMap.Layer.Vector("Vector Layer");.....

map.addLayers([layer,marklayer,vectorLayer]);.....

上面的style属性声明var style = {
                externalGraphic: "./theme/images/marker.png",
                graphicWidth: 44,
                graphicHeight: 33,
                name: "town"
            };

但是vectorlayer没有显示标记啊

单看你粘出来的代码感觉没什么问题,既然feature里面有数据,那问题应该不大,你再仔细调试检查一下,实在还是不行,可以私信一下我你的联系方式。

Thanks a lot!

我昨天又换了一种查询方式 改用new SuperMap.REST.QueryBySQLParameters({
                queryParams: [getFeatureParam]});

的查询方式 替代GetFeaturesBySQLService的方式后 通过event.recordsets[0].features遍历后再添加到图层上就可以显示出来。  这两种方式有什么区别么?

(后台数据为excel属性转点的形式,发布了地图服务和数据服务,GetFeaturesBySQLService访问了数据服务,QueryBySQLParameters访问了地图服务)

GetFeaturesBySQLService查询的是数据集,QueryBySQLService查询的是地图图层,查询的对象不一样,但是

这两个查询结果都差不多,只不过地图查询的查询结果feature是分图层存放到result.recordsets[i]里面的,而数据集查询的查询结果feature是全部合在一起存到result里面的

请问具体怎么实现的呀?遇到了相同的问题
...