首页 / 浏览问题 / 三维GIS / 问题详情
请求查询数据服务,请求时间过长。
82EXP 2018年04月27日
代码如下,  在QWE表单中 只有12条数据,但是请求反馈时间需要接近2分钟左右。  请问一下这个需要怎么解决?

function doSqlQuery() {
    var getFeatureParam, getFeatureBySQLService, getFeatureBySQLParams;
    getFeatureParam = new SuperMap.REST.FilterParameter({
        //attributeFilter: "SmID>1"
    });
    getFeatureBySQLParams = new SuperMap.REST.GetFeaturesBySQLParameters({
        queryParameter: getFeatureParam,
        toIndex: -1,
        datasetNames: ["2:" + "QWE"]
    });
    var url = 'http://localhost:8090/iserver/services/data-dl/rest/data';
    getFeatureBySQLService = new SuperMap.REST.GetFeaturesBySQLService(url, {
        eventListeners: {
            "processCompleted": function (queryEventArgs) {
                var selectedFeatures = queryEventArgs.result.features;
                for (var i = 0; i < selectedFeatures.length; i++) {
                    var MODELNAME = selectedFeatures[i].data["MODELNAME"];
                    var SMID = selectedFeatures[i].data["SMID"]
                    $("#modelName").append("<option value=" + SMID + ">" + MODELNAME + "</option>");

                }
                $('#modelName').on('change', function () {
                    var value = this.value;
                    viewer.scene.layers.find("dl").setObjsVisible([value], true)
                })
            },
            "processFailed": function (queryEventArgs) {
                alert('查询失败!');
            }
        }
    });
    getFeatureBySQLService.processAsync(getFeatureBySQLParams);
}

1个回答

您好,您的意思是查的数据服务总记录只有12条?请求到结果花了2分钟?你数据服务是在发布在本地的还是在某服务器上的?
胡林
1
5,985EXP 2018年04月27日
发布在本地的。

数据服务对应的数据集是什么类型的?是模型数据集还是其它类型的数据集?另外在数据服务处确认一下是否要素只有12条

要素数量:    12

要素几何类型:    GEOMODEL

这是同页面的显示信息。 数据服务这块用得少很多都不太了解,需要把工作空间发给您确认一下问题原因在哪吗?

你把数据传百度云,私信我下载地址,我测试一下。
已经给您私信发送了百度云地址。
收到。。
已确认是模型数据集的问题,如果数据服务对应的数据集是模型数据集的话,请求返回会非常慢,数据量大时还可能引起iserver崩溃。建议把模型数据集的属性做成简单数据集(推荐点或者面),查简单数据集的数据服务即可。
这个怎么转换成简单数据集呢?  这个是直接在3dmax中导出的。
方法很多,比如说:可以在对象操作---截面与投影--获取投影面,把模型投影面提取出来,然后把模型的属性追加列追加到面数据集中,发布数据服务。
...