首页 / 浏览问题 / 其他 / 问题详情
出现问题的linkITem
8EXP 2017年01月13日

var map, local, baseLayer, layersID, themeLayer,
    host = document.location.toString().match(/file:\/\//)?"http://localhost:8090":'http://' + document.location.host,
    url=host+"/iserver/services/map-test/rest/maps/map";

    function queryBySQL() {
        // 设置关联的外部数据库信息,alias表示数据库别名
        var dc = new SuperMap.REST.DatasourceConnectionInfo({
            dataBase: "yunzhuli_test",//数据库名
            server: "12.33.19.180",//服务器名
            user: "sa",//用户名
            password: "******",//密码
            driver: "SQL Server",//数据库驱动名称
            connect: true,//是否自动连接
            OpenLinkTable: false,
            alias: "yunzhuli_test",//数据源别名
            engineType: SuperMap.REST.EngineType.SQLPLUS,//数据源连接引擎类型ORACLEPLUS
            readOnly: false,//是否以只读方式打开数据源
            exclusive: false//是否以独立方式打开数据源
        });
       // 设置关联信息
        var linkItem = new SuperMap.REST.LinkItem({
            datasourceConnectionInfo: dc,//关联外部数据源信息
            foreignKeys: ["AD_CODE"],//主空间数据集外键
            foreignTable: "*********",//关联外部属性表的名称
            linkFields: ["dbqk_id"],//外部属性表的需要保留字段名称
            name: "link",//此关联信息对象的名称
            primatryKeys: ["prov_code"],//需要关联外部属性表的主键
        });
        // 设置查询参数,在查询参数中添加linkItem关联条件信息
        var queryParam, queryBySQLParams, queryBySQLService;
        queryParam = new SuperMap.REST.FilterParameter({
            name: "省面@User_Polygon",//数据集名称@数据源别名
            fields: ["dbqk_id"],//查询字段数组
            attributeFilter: "dbqk_id<6",//查询条件
            linkItems: [linkItem]
         }),
        //console.log(1);断点
        queryBySQLParams = new SuperMap.REST.QueryBySQLParameters({
             queryParams: [queryParam]
                }),
        //console.log(2);断点
           queryBySQLService = new SuperMap.REST.QueryBySQLService(url, {
            eventListeners: {
                "processCompleted": processCompleted,
                "processFailed": processFailed
                }
        });
        queryBySQLService.processAsync(queryBySQLParams);
    }
    function processCompleted(queryEventArgs) {//todo
        console.log(queryEventArgs);
        if(queryEventArgs){
            console.log(queryEventArgs);

            //addThemeRange();
        }

    }
    function processFailed(e) {//todo
        alert("错误信息");
    }
    queryBySQL();

VM72:1 Uncaught TypeError: Cannot read property 'appendChild' of null

/********

******我查了一遍还是报这个错误,一般是由什么引起的呢 是我的那个参数设置错了吗?

*name: "省面@User_Polygon",//数据集名称@数据源别名     这个参数是不是这样设置的,ideskTop中的数****据源是user_polygon  而 数据是 省面

*********/

2 个回答

你的网络请求有没有报错?这个错误从目前来看是前端js的错误
1,603EXP 2017年01月13日
没有 就出现了目前的这行错误 我觉得也是js错误但是由于报错在本地  我就很疑惑了
如果是参数错误的话网络请求会告诉你什么参数错误了,如果网络请求都没有发出去的话那就是前端js的错误
你好 你在开发者工具里【按F12】查看 是否有发queryrResult.json的请求 又发请求 请把请求的详细参数的截图贴上
1,615EXP 2017年01月13日

就没有请求发送出去 这是什么原因呢

看了你的代码  你是直接在后面写的queryBySQL();

如果不调用这个函数的话我又怎么能处理这个数据呢?

我想结合咱们专题图的分段专题图关联外表 用代码控制它的颜色 怎么将两个结合起来啊?

请给个思路 万分感谢!!!!!

如果你初始化的时候就要进行关联查询 你可以在初始化的函数里面去调用queryBySQL();方法 

你调用方法不能直接写在JavaScript标签里 你应该是需要一个入口去调用

就比如你可以 在初始化map以后去调用 或者addLayers里面去调用

...