1 votos

Obteniendo error en la función applyEdits para ArcGIS

He estado tratando de añadir una entrada a un featureLayer y en quieren obtener una devolución de llamada de este modo puedo actualizar otro campo en él. a continuación es mi código

clkListenerAddFeature = dojo.connect(map, "onClick", function (evt)
{
    //alert("inside the click function");
    var point = evt.mapPoint;

    var attributes = {};
    attributes["1"] = "CLOSED";
    attributes["2"] = "DENIED"; 
    attributes["3"] = "0";
    attributes["4"] = "1";
    attributes["5"] = userLoginId;

    var graphic = new esri.Graphic(point, null, attributes);
    featureLayerEdit.applyEdits([graphic], null, null);
    dojo.connect(featureLayerEdit, "onEditsComplete", addResultsComplete);

    if (clkListenerAddFeature) dojo.disconnect(clkListenerAddFeature);
    refresh_map();
    reset_map(map);

});

function addResultsComplete(addResults)
{
    if (addResults.length > 0) {
        var graphic = featureLayerEdit.graphics[featureLayerEdit.graphics.length - 1];

        graphic.attributes["6"] = graphic.attributes["OBJECTID"];
        featureLayerEdit.applyEdits(null, [graphic], null);
    }

}

pero sigo encontrando este error TypeError: Unable to get value of the property 'getCellsInExtent': object is null or undefined

¿alguien tiene alguna idea?

2voto

Paul Hargreaves Puntos 1022

Creo que el problema puede estar en sus atributos. ¿Son realmente 1,2,3,4,5 los nombres de los campos en su servicio de características?

Debería ser algo más parecido a

attributes["FIELD_NAME_1"] = "CLOSED";
//equivalent to... 
attributes.FIELD_NAME_1 = "CLOSED";

Por cierto, en lugar de conectar onEditsComplete, me parece que adjuntar una función anónima al callback y al errback es más conciso/leíble.

var d = new Date();
var attr = {
    Created_By: "awesomo",
    Created_Date: d.getTime()
};
var graphic = new esri.Graphic(addGeom, null, attr, null);
featureLayerEdit.applyEdits([graphic], null, null, function (adds, updates, deletes) {
    var query = new esri.tasks.Query();
    query.objectIds = [adds[0].objectId];
    featureLayerEdit.selectFeatures(query, esri.layers.FeatureLayer.SELECTION_NEW);
    alert("Added feature successfully, OBJECTID: " + adds[0].objectId);
}, function (err) {
    //when an error occurs
    alert("Apply Edits Failed: " + err.message);
});

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X