I am trying to update multiple features in a feature layer through a loop.
I have a feature layer that I would like to select and then assign someone to the features (through an attribute update. I can select the features and see all of the attributes but I can't figure out how to update the the features. See below for a sample of what I am trying to do. Right now it is a bit messy where I am trying to set the visibility of a form and button on after the selection so the user can choose an assignment.
Has anyone updated multiple features without using the attribute inspector or editor widget which I have only seen examples for editing a feature at a time.
var map, geocoder, currentBaseMap, assignWindow, featureLayer; var locatorUrl ="http://gisaprd/ArcGIS/rest/services/SDE.AddressLocator_Comp/GeocodeServer"; var selectedPoints = new Array();require(["esri/InfoTemplate","esri/map","esri/layers/FeatureLayer","esri/layers/ArcGISTiledMapServiceLayer","esri/layers/ArcGISDynamicMapServiceLayer","esri/dijit/Geocoder","esri/symbols/SimpleFillSymbol","esri/symbols/SimpleLineSymbol","esri/tasks/query","esri/toolbars/draw","dojo/dom","dojo/on","dojo/parser","dojo/_base/array","dojo/_base/Color","dijit/form/Button","dojo/domReady!" ], function ( InfoTemplate, Map, FeatureLayer, ArcGISTiledMapServiceLayer, ArcGISDynamicMapServiceLayer, Geocoder, SimpleFillSymbol, SimpleLineSymbol,Query, Draw, dom, on, parser, arrayUtil, Color ) { parser.parse(); var selectionToolbar, featureLayer; // Create the map map = new Map("map") aerialsLayer = new esri.layers.ArcGISTiledMapServiceLayer("http://gisaprd/ArcGIS/rest/services/Aerials_4inch_12inch_Cached/MapServer", { "id": "Aerials", "visible": false }); map.addLayer(aerialsLayer); streetsLayer = new esri.layers.ArcGISDynamicMapServiceLayer("http://gisaprd/ArcGIS/rest/services/SRSLandbase/MapServer", { "id": "Streets" }); map.addLayer(streetsLayer); currentBaseMap = "Streets"; map.on("load", initSelectToolbar); document.getElementById("AssignFrm").style.visibility = "hidden"; document.getElementById("AssignBTN").style.visibility = "hidden"; highlightSymbol = new esri.symbol.SimpleMarkerSymbol().setColor(new dojo.Color([255, 255, 0])); var content = "Address: ${SDE.GasServiceLocation.LOCATIONDESCRIPTION}"; var infoTemplate = new InfoTemplate("${SDE.GasServiceLocation.CU_ID}", content); featureLayer = new FeatureLayer("http://gisadev:6080/arcgis/rest/services/ISS_Inspections/FeatureServer/0", { mode: FeatureLayer.MODE_ONDEMAND, infoTemplate: infoTemplate, outFields: ["*"] }); featureLayer.setSelectionSymbol(highlightSymbol); featureLayer.on("selection-complete", createListForAssignment); //featureLayer.on("selection-clear", function () { // dom.byId('messages').innerHTML = "No Selected Fields"; //}); map.addLayer(featureLayer); var myGeocoders = [{ url: locatorUrl, name: "SDE.AddressLocator_Comp" }]; geocoder = new Geocoder({ map: map, autoComplete: true, arcgisGeocoder: false, geocoders: myGeocoders, value: "", zoomScale: 1200 }, "search"); geocoder.startup(); on(dom.byId("selectFieldsButton"), "click", function () { selectionToolbar.activate(Draw.EXTENT); }); on(dom.byId("clearSelectionButton"), "click", function () { featureLayer.clearSelection(); }); on(dom.byId("BaseMapToggle"), "click", ChangeBaseMap); //on(dom.byId("assignCrew"), "click", AssignInspectionCrew); function initSelectToolbar(event) { selectionToolbar = new Draw(event.map); var selectQuery = new Query(); on(selectionToolbar, "DrawEnd", function (geometry) { selectionToolbar.deactivate(); selectQuery.geometry = geometry; featureLayer.selectFeatures(selectQuery, FeatureLayer.SELECTION_NEW); }); } function ChangeBaseMap() { if (currentBaseMap == "Streets") { currentBaseMap = "Aerials"; aerialsLayer.setVisibility(true); } else if (currentBaseMap == "Aerials") { currentBaseMap = "Streets"; aerialsLayer.setVisibility(false); } } function createListForAssignment(event) { document.getElementById("AssignFrm").style.visibility = "visible"; document.getElementById("AssignBTN").style.visibility = "visible"; arrayUtil.forEach(event.features, function (feature, index) { selectedPoints.push(feature); }); } }); function assign() { if (document.getElementById('Jordan').checked) { x = document.getElementById('Jordan').value; for (var i = 0; i < selectedPoints.length; i++) { selectedPoints.attributes.ASSIGNED_TO = x; } } else { y = document.getElementById('Trenton').value; alert; } }
أكثر...
I have a feature layer that I would like to select and then assign someone to the features (through an attribute update. I can select the features and see all of the attributes but I can't figure out how to update the the features. See below for a sample of what I am trying to do. Right now it is a bit messy where I am trying to set the visibility of a form and button on after the selection so the user can choose an assignment.
Has anyone updated multiple features without using the attribute inspector or editor widget which I have only seen examples for editing a feature at a time.
var map, geocoder, currentBaseMap, assignWindow, featureLayer; var locatorUrl ="http://gisaprd/ArcGIS/rest/services/SDE.AddressLocator_Comp/GeocodeServer"; var selectedPoints = new Array();require(["esri/InfoTemplate","esri/map","esri/layers/FeatureLayer","esri/layers/ArcGISTiledMapServiceLayer","esri/layers/ArcGISDynamicMapServiceLayer","esri/dijit/Geocoder","esri/symbols/SimpleFillSymbol","esri/symbols/SimpleLineSymbol","esri/tasks/query","esri/toolbars/draw","dojo/dom","dojo/on","dojo/parser","dojo/_base/array","dojo/_base/Color","dijit/form/Button","dojo/domReady!" ], function ( InfoTemplate, Map, FeatureLayer, ArcGISTiledMapServiceLayer, ArcGISDynamicMapServiceLayer, Geocoder, SimpleFillSymbol, SimpleLineSymbol,Query, Draw, dom, on, parser, arrayUtil, Color ) { parser.parse(); var selectionToolbar, featureLayer; // Create the map map = new Map("map") aerialsLayer = new esri.layers.ArcGISTiledMapServiceLayer("http://gisaprd/ArcGIS/rest/services/Aerials_4inch_12inch_Cached/MapServer", { "id": "Aerials", "visible": false }); map.addLayer(aerialsLayer); streetsLayer = new esri.layers.ArcGISDynamicMapServiceLayer("http://gisaprd/ArcGIS/rest/services/SRSLandbase/MapServer", { "id": "Streets" }); map.addLayer(streetsLayer); currentBaseMap = "Streets"; map.on("load", initSelectToolbar); document.getElementById("AssignFrm").style.visibility = "hidden"; document.getElementById("AssignBTN").style.visibility = "hidden"; highlightSymbol = new esri.symbol.SimpleMarkerSymbol().setColor(new dojo.Color([255, 255, 0])); var content = "Address: ${SDE.GasServiceLocation.LOCATIONDESCRIPTION}"; var infoTemplate = new InfoTemplate("${SDE.GasServiceLocation.CU_ID}", content); featureLayer = new FeatureLayer("http://gisadev:6080/arcgis/rest/services/ISS_Inspections/FeatureServer/0", { mode: FeatureLayer.MODE_ONDEMAND, infoTemplate: infoTemplate, outFields: ["*"] }); featureLayer.setSelectionSymbol(highlightSymbol); featureLayer.on("selection-complete", createListForAssignment); //featureLayer.on("selection-clear", function () { // dom.byId('messages').innerHTML = "No Selected Fields"; //}); map.addLayer(featureLayer); var myGeocoders = [{ url: locatorUrl, name: "SDE.AddressLocator_Comp" }]; geocoder = new Geocoder({ map: map, autoComplete: true, arcgisGeocoder: false, geocoders: myGeocoders, value: "", zoomScale: 1200 }, "search"); geocoder.startup(); on(dom.byId("selectFieldsButton"), "click", function () { selectionToolbar.activate(Draw.EXTENT); }); on(dom.byId("clearSelectionButton"), "click", function () { featureLayer.clearSelection(); }); on(dom.byId("BaseMapToggle"), "click", ChangeBaseMap); //on(dom.byId("assignCrew"), "click", AssignInspectionCrew); function initSelectToolbar(event) { selectionToolbar = new Draw(event.map); var selectQuery = new Query(); on(selectionToolbar, "DrawEnd", function (geometry) { selectionToolbar.deactivate(); selectQuery.geometry = geometry; featureLayer.selectFeatures(selectQuery, FeatureLayer.SELECTION_NEW); }); } function ChangeBaseMap() { if (currentBaseMap == "Streets") { currentBaseMap = "Aerials"; aerialsLayer.setVisibility(true); } else if (currentBaseMap == "Aerials") { currentBaseMap = "Streets"; aerialsLayer.setVisibility(false); } } function createListForAssignment(event) { document.getElementById("AssignFrm").style.visibility = "visible"; document.getElementById("AssignBTN").style.visibility = "visible"; arrayUtil.forEach(event.features, function (feature, index) { selectedPoints.push(feature); }); } }); function assign() { if (document.getElementById('Jordan').checked) { x = document.getElementById('Jordan').value; for (var i = 0; i < selectedPoints.length; i++) { selectedPoints.attributes.ASSIGNED_TO = x; } } else { y = document.getElementById('Trenton').value; alert; } }
أكثر...