Supermap iClient for JavaScript 多数据集查询
2017-01-10 17:45
519 查看
作者:柳惠珠
一. 前言
在日常使用查询的时候,经常会对多个数据集进行查询,一个一个数据集查询会非常的耗时也麻烦。iClient for Javascript提供了多数据集查询的功能。下面我就以SQL查询为例,分别阐述一下地图查询与数据集查询的具体用法。
二. 地图查询
1 . SuperMap.REST.QueryBySQLParameters
queryParams,这个属性是用来设置查询的过滤条件。这是一个数组,数组中中可以写多个FilterParameter对象来实现对多个数据集的查询。
2 . SuperMap.REST.FilterParameter
attibuteFilter属性设置过滤条件,相关的条件的书写可查看另一篇博文
http://blog.csdn.net/supermapsupport/article/details/53910299
name属性用于设置查询的数据集名称。
3 . 示范代码
4 . 查询结果
查询完成后会传入一个queryEventArgs数据结果到processCompleted这个方法中。
地图查询的结果会按照数据集分组, 可以通过queryEventArgs.result.recordsets[]来查看每个数据集的查询结果。
如果数据集的类型不同,例如,有点数据集,面数据集,线数据集等。可以通过查看queryEventArgs.result.recordsets[0].features[0].geometry来判断数据的类型。
二. 数据集查询
1 . SuperMap.REST.GetFeaturesBySQLParameters
queryParameter与地图查询不同,不是一个数组,只是一个FilterParameter对象。所以,多数据集就要在datasetNames里面进行设置,这个是一个数组,可以写多个数据集的名称。
2 . SuperMap.REST.FilterParameter
与地图查询不同的是,我们GetFeaturesBySQLParameters里面已经通过datasetNames属性设置了数据集的名称,所以在数据集查询的时候,name属性我们就不再进行设置了,设置attributeFilter即可。
3 . 示范代码
4 . 查询结果
查询完成后会传入一个queryEventArgs数据结果到processCompleted这个方法中。
可以通过queryEventArgs.result.features[]来查看每个数据集的查询结果。
如果数据集的类型不同,例如,有点数据集,面数据集,线数据集等。可以通过查看queryEventArgs.result.features[0].geometry来判断数据的类型。
这里需要注意的是:地图查询的结果会按照数据集进行分类,而数据集查询的结果不会按照数据集进行分类,而是直接将结果都放在features里面。
一. 前言
在日常使用查询的时候,经常会对多个数据集进行查询,一个一个数据集查询会非常的耗时也麻烦。iClient for Javascript提供了多数据集查询的功能。下面我就以SQL查询为例,分别阐述一下地图查询与数据集查询的具体用法。
二. 地图查询
1 . SuperMap.REST.QueryBySQLParameters
queryParams,这个属性是用来设置查询的过滤条件。这是一个数组,数组中中可以写多个FilterParameter对象来实现对多个数据集的查询。
2 . SuperMap.REST.FilterParameter
attibuteFilter属性设置过滤条件,相关的条件的书写可查看另一篇博文
http://blog.csdn.net/supermapsupport/article/details/53910299
name属性用于设置查询的数据集名称。
3 . 示范代码
var queryParam = [], queryBySQLParams, queryBySQLService; queryParam[0] = new SuperMap.REST.FilterParameter({ name: "Countries@World.1", attributeFilter: "Pop_1994>1000000000 and SmArea>900" }); queryParam[1] = new SuperMap.REST.FilterParameter({ name: "Captials@World.1", attributeFilter: "Pop_1994>1000000000 and SmArea>900" }); queryBySQLParams = new SuperMap.REST.QueryBySQLParameters({ queryParams: [queryParam] }); queryBySQLService = new SuperMap.REST.QueryBySQLService(url, { eventListeners: {"processCompleted": processCompleted, "processFailed": processFailed}}); queryBySQLService.processAsync(queryBySQLParams);
4 . 查询结果
查询完成后会传入一个queryEventArgs数据结果到processCompleted这个方法中。
地图查询的结果会按照数据集分组, 可以通过queryEventArgs.result.recordsets[]来查看每个数据集的查询结果。
如果数据集的类型不同,例如,有点数据集,面数据集,线数据集等。可以通过查看queryEventArgs.result.recordsets[0].features[0].geometry来判断数据的类型。
二. 数据集查询
1 . SuperMap.REST.GetFeaturesBySQLParameters
queryParameter与地图查询不同,不是一个数组,只是一个FilterParameter对象。所以,多数据集就要在datasetNames里面进行设置,这个是一个数组,可以写多个数据集的名称。
2 . SuperMap.REST.FilterParameter
与地图查询不同的是,我们GetFeaturesBySQLParameters里面已经通过datasetNames属性设置了数据集的名称,所以在数据集查询的时候,name属性我们就不再进行设置了,设置attributeFilter即可。
3 . 示范代码
var getFeatureParam, getFeatureBySQLService, getFeatureBySQLParams; getFeatureParam = new SuperMap.REST.FilterParameter({ attributeFilter: "SmID > 50" }); getFeatureBySQLParams= new SuperMap.REST.GetFeaturesBySQLParameters({ queryParameter: getFeatureParam, datasetNames:["World:Countries","World:Capitals"] }); getFeatureBySQLService = newSuperMap.REST.GetFeaturesBySQLService(url2 , { eventListeners: {"processCompleted": processCompleted, "processFailed": processFailed}}); getFeatureBySQLService.processAsync(getFeatureBySQLParams);
4 . 查询结果
查询完成后会传入一个queryEventArgs数据结果到processCompleted这个方法中。
可以通过queryEventArgs.result.features[]来查看每个数据集的查询结果。
如果数据集的类型不同,例如,有点数据集,面数据集,线数据集等。可以通过查看queryEventArgs.result.features[0].geometry来判断数据的类型。
这里需要注意的是:地图查询的结果会按照数据集进行分类,而数据集查询的结果不会按照数据集进行分类,而是直接将结果都放在features里面。
相关文章推荐
- SuperMap iClient for JavaScript查询过滤条件构建
- 使用Supermap iClient for javascript查询多边形并添加marker和信息框
- SuperMap iClient for JavaScript 实现拖动半径进行距离查询
- SuperMap iClient for JavaScript 时空数据动画的实现(二)
- SuperMap iClient for JavaScript常见问题解答集锦(十二)
- SuperMap iClient for JavaScript 新手入门
- SuperMap iClient for JavaScript 时空数据动画的实现
- SuperMap iClient for JavaScript矢量分块图层-地图快速渲染的利器
- SuperMap iClient for javaScript 动态线绘制(模拟飞机飞行)
- HTML5“强云富端”,迎接App时代——SuperMap iClient 6R(2012) for JavaScript产品新...
- SuperMap iClient 6R(2012) for JavaScript
- SuperMap iClient 6R(2012) for Flex(PS:Flex交互性能比JavaScript好)
- supermap iclient for android iserver服务查询
- SuperMap iClient for javaScript 判断几何对象是否相交
- SuperMap iClient for Javascript地图切换显示
- supermap iClient for silverlight 获取图形的坐标点
- Arcgis for javascript -实现Geocoder widget查询功能
- ArcGIS.Server.9.3和ArcGIS API for JavaScript实现查询定位中心的功能和FindTask功能应用(七)
- ArcGIS API For Javascript中queryTask查询返回结果限制为1000的解决办法
- [转]SharePoint 2010: Client Object Model for JavaScript (ECMAScript)(使用客户端对象模型)