如何获得arcgis IdentyfyTask addCallback的值?

时间:2016-06-14 10:55:07

标签: javascript arcgis-js-api

我接受了IdentyfyTask的测试。

但是我无法在值addCallback之前得到响应。

我想要pnu值。

但pnu vaule总是未定义......

我的代码如下。

function poiClick(){
    agmap.addEvent("click", function(evt){

         getPoi=     krcgis.Function.PoiClick(agmap ,evt);

         console.log("X === ",getPoi.x);
         console.log("Y === ",getPoi.y);
         console.log("PNU === ",getPoi.pnu);
    });
}

 PoiClick : function(map, evt) {
         poiInfo = {};
         poiInfo.x =evt.mapPoint.x;
         poiInfo.y =evt.mapPoint.y;
         var targetLayerId = 'LP_PA_CBND'; 
        var url = map.Layers.getLayerInfo(targetLayerId).SVC_URL;
        var map = map.getMap();
        //파라미터 설정.
        var idParams = new krcgis.core.tasks.IdentifyParameters();
        idParams.geometry = evt.mapPoint;
        idParams.mapExtent = map.extent;
        idParams.returnGeometry = true;
        idParams.tolerance = 0;
        idParams.layerOption = krcgis.core.tasks.IdentifyParameters.LAYER_OPTION_ALL;
        idParams.width = map.width;
        idParams.height = map.height;


        idTask = new krcgis.core.tasks.IdentyfyTask(url);
        idTask
        .execute(idParams)
        .addCallback(function (response) {
            if (response) {
                poiInfo.pnu =response[0].value;
            }
        });
        return poiInfo;
    }

结果如下。

enter image description here

1 个答案:

答案 0 :(得分:1)

IdentifyTask返回一个IdentifyResult对象。所以您的代码 response [0] .value 将是未定义的。 你应该使用 response [0] .feature.attributes.PNU

之类的东西