private function initCombo():void
{
var baseURL:String = "http://myserver/ArcGIS/rest/services/mystuff/MapServer/"
var tokenCounter:int = 0;
// tokens is an array collection of objects
// only feature layers 7 to 10 are relevant for this combobox
for (var i:int = 7; i < 11; i++) {
queryTask.url = baseURL + i.toString();
queryTask.execute(query, new AsyncResponder(onResult, onFault, tokens.getItemAt(tokenCounter)));
tokenCounter++;
}
function onResult(featureSet:FeatureSet, token:Object = null):void
{
for each (var graphic:Graphic in featureSet.features)
{
var fieldValue:String = token.name + " " + graphic.attributes["OBJECTID_1"].toString();
token.collection.addItem({label:fieldValue, data:graphic.geometry});
}
for each (var item:Object in tokens)
{
// probably a better way to get a handle back to global collections than this
if (item.name == token.name)
{
item.collection = token.collection;
item.completed = true;
break;
}
}
// if all the tokens are true, merge the collections into one
if (checkTokens()){
// collections is an array containing the array collections so I can iterate through them
for (var i:int = 0; i < collections.length; i++)
{
mergedCollection = new ArrayCollection(result.source.concat(collections.source));
}
cmb1.labelField = "label";
cmb1.dataProvider = mergedCollection;
}
}
function onFault(info:Object, token:Object = null):void
{
Alert.show(info.toString(), "Query Problem");
}
}
private function checkTokens():Boolean
{
for (var i:int = 0; i < tokens.length; i++)
{
if (!(tokens.completed))
{
return false;
}
}
return true;
}
private function doQuery():void
{
graphicsLayer.clear();
query.where = "";
// I thought this would be the geometry returned by the query
query.geometry = cmb1.selectedItem.value;
queryTask.execute(query, new AsyncResponder(onResult, onFault));
function onResult(featureSet:FeatureSet, token:Object = null):void
{
var graphicsExtent:Extent = GraphicUtil.getGraphicsExtent(featureSet.features);
if (graphicsExtent)
{
map.extent = graphicsExtent;
}
graphicsLayer.graphicProvider = featureSet.features;
}
function onFault(info:Object, token:Object = null):void
{
Alert.show(info.toString(), "Query Problem");
}
}
Solved! Go to Solution.
query.geometry = cmb1.selectedItem.data;
query.geometry = cmb1.selectedItem.data;