When attempting to add features to a featureLayer with applyEdits, the features do not get added to the layer.
var featureCollection = JSON.parse(mapdata);
var features = JSON.parse(mapdata).featureSet.features;
featureCollection.featureSet.features = [];
var pointFeatures = [];
var featureLayer = new esri.layers.FeatureLayer(featureCollection, {
id: 'HourlyDataLayer'
});
for (var i = 0; i < features.length; i++) {
if (features[i].attributes[selectedField] > maxValue) {
maxValue = features[i].attributes[selectedField];
}
if (features[i].attributes[selectedField] < minValue) {
minValue = features[i].attributes[selectedField];
}
}
for (var i = 0; i < features.length; i++) {
var feature = features[i];
var size = (feature.attributes[selectedField] - minValue) * ((150 - 5) / (maxValue - minValue)) + 5
var symbol = new esri.symbol.SimpleMarkerSymbol(esri.symbol.SimpleMarkerSymbol.STYLE_CIRCLE, size,
new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID,
new dojo.Color([255, 0, 0]), 1), new dojo.Color([0, 255, 0, 0.25]));
var attr = feature.attributes;
var latlong = LatLonToWebMercator(feature.geometry.x, feature.geometry.y);
var geometry = new esri.geometry.Point(latlong[0], latlong[1], spatialReference);
var graphic = new esri.Graphic(geometry, symbol);
graphic.setInfoTemplate(infoTemplate);
graphic.setAttributes(attr);
pointFeatures.push(graphic);
}
featureLayer.setEditable(true);
featureLayer.applyEdits(pointFeatures, null, null);
map.addLayers([featureLayer]);
Best Answer
Turns out this was really easy, but not at all intuitive to me, and I didn't see anything in documentation to suggest it, but you have to add the FeatureLayer to the map before you can apply edits: