Luke,
You need to use the LayerDetails
http://resources.esri.com/help/9.3/arcgisserver/apis/flex/apiref/com/esri/ags/layers/LayerDetails.ht...
Hi Luke did u solve this problem?...I have the same too...
Thanks,
David
public function zoomToLayerExtent(layerID:int, layer:ArcGISDynamicMapServiceLayer):void
{
var responder:IResponder = new Responder(layerDetailsResult, layerDetailsFault);
layer.getDetails(layerID,responder);
}
public function layerDetailsResult(layerDetails:LayerDetails):void
{
// Handle LayerDetails here. Zoom to layer extent from layerDetails.extent
}
public function layerDetailsFault():void
{
// Error code
}
Thanks for your help. I've got it working now
Here's just some little example hacked up code I got going just to test it outpublic function zoomToLayerExtent(layerID:int, layer:ArcGISDynamicMapServiceLayer):void { var responder:IResponder = new Responder(layerDetailsResult, layerDetailsFault); layer.getDetails(layerID,responder); } public function layerDetailsResult(layerDetails:LayerDetails):void { // Handle LayerDetails here. Zoom to layer extent from layerDetails.extent } public function layerDetailsFault():void { // Error code }
var dLayer:ArcGISDynamicMapServiceLayer = map.getLayer("Map") as ArcGISDynamicMapServiceLayer;
var layerDefs:Array = new Array();
var layerStr:String = new String();
layerDefs[0] = "c_edificio='" + txtMessage.text + "'";
layerDefs[1] = "";
layerDefs[2] = "";
layerDefs[3] = "";
dLayer.layerDefinitions = layerDefs;
dLayer.refresh();
zoomToLayerExtent(0,dLayer);
var graphicsExtent:Extent = GraphicUtil.getGraphicsExtent(featureSet.features);
if (graphicsExtent)
{
map.extent = graphicsExtent;
}
David,
The rest service directory that the LayerDetails is getting the extent info from does not know about any layer definitions that you have applied (as those are client side).
To do what you are trying to do you need to query the map service using your same layer definition query and then get the graphics extent, like thisvar graphicsExtent:Extent = GraphicUtil.getGraphicsExtent(featureSet.features); if (graphicsExtent) { map.extent = graphicsExtent; }
David,
Google "Yahoo Astra"