queryTask.execute(query, selectShowResults, SQLerror); function selectShowResults(results) { //Create a feature layer from the results var featureSet = new esri.tasks.FeatureSet({ features: results.features }); var fields = [ { "name": "NAME", "type": "esriFieldTypeString", "alias": "Name" }, { "name": "OBJECTID", "type": "esriFieldTypeOID", "alias": "OBJECTID" } ] var layerDefinition = { "geometryType": "esriGeometryPolygon", "fields": fields, "objectIdField": "OBJECTID", } var featureCollection = { layerDefinition: layerDefinition, featureSet: featureSet }; var layer = new esri.layers.FeatureLayer(featureCollection, { id: "query layer", mode: esri.layers.FeatureLayer.MODE_SNAPSHOT }) var renderer = new esri.renderer.SimpleRenderer( new esri.symbol.SimpleFillSymbol("solid", null, new dojo.Color([255, 0, 255, 0.75]) )); layer.setRenderer(renderer); map.addLayer(layer); }
Solved! Go to Solution.
The query that I was using wasn't returning a feature within the map extent, so it was never going to work. I've updated the sample with a new extent and slightly different query, and it's working OK now.
Stepping through it, I can see that this line:
var featureSet = new esri.tasks.FeatureSet({ features: results.features });
is stripping the geometry from the results, meaning that the feature layer has no geometry.
function selectShowResults(results) { //Create a feature layer from the results var graphics = []; var sfs = new esri.symbol.SimpleFillSymbol(esri.symbol.SimpleFillSymbol.STYLE_SOLID, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_DASHDOT, new dojo.Color([255,0,0]), 2),new dojo.Color([255,255,0,0.25])); var infoTemplate = new esri.InfoTemplate(); for (var i = 0; i < results.features.length; i++) { var feature = results.features; var graphic = new esri.Graphic(feature.geometry,sfs,feature.attributes,infoTemplate); graphics.push(graphic); } var sr = new esri.SpatialReference(102100); var featureSet = new esri.tasks.FeatureSet({ geometryType: "esriGeometryPolygon", features: graphics, spatialReference: sr });
Still no luck, though.... Thanks for any advice.
The query that I was using wasn't returning a feature within the map extent, so it was never going to work. I've updated the sample with a new extent and slightly different query, and it's working OK now.
Hello. The link you provided in your last post is not working. Can you post your solution? Thanks.