Select to view content in your preferred language

Identify Features Sample - How to resize window and add url

779
3
08-09-2011 03:42 AM
SteveFowler
Deactivated User
I'm utlizing the Identify Features source code from the Samples section for my Flex app and it is working fine. However; I need to be able to adjust the Info window width so it shows all of my data. In addition, I have a url link in my attributes table that I want a customer to have access to. So.. I have two questions:

1. How do I resize the info window?
2. How do I make the url in the info window accessible?

Here is the source code from the ESRI Flex Sample code I am using:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:esri="http://www.esri.com/2008/ags"
               pageTitle="Identify Features on the Map">

    <fx:Script>
        <![CDATA[
            import com.esri.ags.Graphic;
            import com.esri.ags.events.MapMouseEvent;
            import com.esri.ags.geometry.Geometry;
            import com.esri.ags.symbols.InfoSymbol;
            import com.esri.ags.tasks.supportClasses.IdentifyParameters;
            import com.esri.ags.tasks.supportClasses.IdentifyResult;

            import mx.controls.Alert;
            import mx.rpc.AsyncResponder;

            [Bindable]private var lastIdentifyResultGraphic:Graphic;

            private function mapClickHandler(event:MapMouseEvent):void
            {
                clickGraphicsLayer.clear();

                var identifyParams:IdentifyParameters = new IdentifyParameters();
                identifyParams.returnGeometry = true;
                identifyParams.tolerance = 3;
                identifyParams.width = myMap.width;
                identifyParams.height = myMap.height;
                identifyParams.geometry = event.mapPoint;
                identifyParams.mapExtent = myMap.extent;
                identifyParams.spatialReference = myMap.spatialReference;

                var clickGraphic:Graphic = new Graphic(event.mapPoint, clickPtSym);
                clickGraphicsLayer.add(clickGraphic);

                identifyTask.execute(identifyParams, new AsyncResponder(myResultFunction, myFaultFunction, clickGraphic));
            }

            private function myResultFunction(results:Array, clickGraphic:Graphic = null):void
            {
                if (results && results.length > 0)
                {
                    var result:IdentifyResult = results[0];
                    var resultGraphic:Graphic = result.feature;
                    switch (resultGraphic.geometry.type)
                    {
                        case Geometry.MAPPOINT:
                        {
                            resultGraphic.symbol = smsIdentify;
                            break;
                        }
                        case Geometry.POLYLINE:
                        {
                            resultGraphic.symbol = slsIdentify;
                            break;
                        }
                        case Geometry.POLYGON:
                        {
                            resultGraphic.symbol = sfsIdentify;
                            break;
                        }
                    }
                    lastIdentifyResultGraphic = resultGraphic;

                    // update clickGraphic (from mouse click to returned feature)
                    clickGraphic.symbol = new InfoSymbol(); // use default renderer
                    clickGraphic.attributes = resultGraphic.attributes;
                }
            }

            private function myFaultFunction(error:Object, clickGraphic:Graphic = null):void
            {
                Alert.show(String(error), "Identify Error");
            }
        ]]>
    </fx:Script>

    <fx:Declarations>
        <!-- Symbol for where the user clicked -->
        <esri:SimpleMarkerSymbol id="clickPtSym"
                                 color="0xFF0000"
                                 size="12"
                                 style="x"/>

        <!-- Symbol for Identify Result as Polyline -->
        <esri:SimpleLineSymbol id="slsIdentify"
                               width="2"
                               alpha="1"
                               color="0x00FF00"
                               style="solid"/>

        <!-- Symbol for Identify Result as Point -->
        <esri:SimpleMarkerSymbol id="smsIdentify"
                                 color="0x00FF00"
                                 size="15"
                                 style="diamond"/>

        <!-- Symbol for Identify Result as Polygon -->
        <esri:SimpleFillSymbol id="sfsIdentify"/>

        <!-- Identify Task -->
        <esri:IdentifyTask id="identifyTask"
                           concurrency="last"
                           url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StatesCitiesRivers_USA/Map..."/>
    </fx:Declarations>

    <esri:Map id="myMap"
              mapClick="mapClickHandler(event)"
              openHandCursorVisible="false">
        <esri:extent>
            <esri:WebMercatorExtent minlon="-120" minlat="30" maxlon="-100" maxlat="50"/>
        </esri:extent>
        <esri:ArcGISTiledMapServiceLayer url="http://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"/>
        <esri:GraphicsLayer graphicProvider="{lastIdentifyResultGraphic}"/>
        <esri:GraphicsLayer id="clickGraphicsLayer"/>
    </esri:Map>

</s:Application>
Tags (2)
0 Kudos
3 Replies
KenBuja
MVP Esteemed Contributor
To add in the url, try this code by Robert Scheitlin. Here's how I use it in one of my applications.
0 Kudos
RonAnkeny
Occasional Contributor
Does anyone have an answer to the resizing question?

I'm in the same boat, and brand new to Flex. The generic InfoSymbol that runs on my Identify Widget is not wide enough to accomodate addresses without cutting them off or scrolling and I want to make it wide enough to show the whole thing.
0 Kudos
RobertScheitlin__GISP
MVP Emeritus
Ron,

  A year latter but here is a thread where I show someone else how to do this:

http://forums.arcgis.com/threads/63222-Identify-Tool-s-infoWondow-box-can-it-be-customized-in-Length...
0 Kudos