Select to view content in your preferred language

Identify Widget 3.6.2 for Flex Viewer: raster layer names will not display

8235
32
Jump to solution
01-21-2014 01:32 PM
BarnabyRockwell
Deactivated User
Using the 3.6.2 version of the Identify Widget, I cannot get names of attributed, ERDAS Imagine (.img) raster layers to display when I click on a pixel in the Flex app to identify. In the 3.0.2 version of the widget for Flex Viewer 3.0, the layer name would be displayed for these raster layers. How can I get the layer name to be displayed along with the other results? I am using ArcGIS 10.2 for Server and Flex Viewer 3.6, on Windows Server 2008 R2 x64. I have not installed the Flex API, just the Flex Viewer.

Behavior is the same with widget version 3.5.1 for Flex Viewer 3.5.

Layer names for vector layers are displayed with Identify results, just not the layer names of the Imagine .img files. In Widget settings, if I try and add a layer from one of these rasters, the services are seen, but no "addable" features are shown, so I cannot add them.

In my current xml configuration for the widget, I completely removed the <layers> section. So there is no layer info in the xml for any layer. Everything seems to work fine except for the .img layers for which no layer names are displayed.

This image shows identify results on one of the .img files using Identify widget 3.0.2 in Flex Viewer 3.0, using ArcGIS for Server 10.0 (sp5), in Firefox:

[ATTACH=CONFIG]30682[/ATTACH]

This image shows identify results on one of the .img files using Identify widget 3.6.2 in Flex Viewer 3.6, using ArcGIS 10.2 for Server, in Firefox:

[ATTACH=CONFIG]30683[/ATTACH]

Thank you in advance...
0 Kudos
1 Solution

Accepted Solutions
BarnabyRockwell
Deactivated User
The issue was found about a year ago, and has been fixed in ArcGIS 10.2.1 for Server.

Case closed!  🙂

---------------------------------------------

However, note that raster layers are still not shown in Add Layer dialog of ID widget in App Builder, as shown in this post above:

http://forums.arcgis.com/threads/101169-Identify-Widget-3.6.2-for-Flex-Viewer-raster-layer-names-wil...

even when using Server 10.2.1, Flex Viewer 3.6, and ID widget 3.6.2.

View solution in original post

0 Kudos
32 Replies
BarnabyRockwell
Deactivated User
BTW, here is a public Flex app using Server 10.0, Flex Viewer 3.0, and Identify Widget 3.0.2.  Layer names for all Imagine attributed rasters will display properly:

http://cmerwebmap.cr.usgs.gov/flexviewers/min7_demo_pub/

Here is a public Flex app using Server 10.1, Flex Viewer 3.5+ (I don't know exact versions of Flex Viewer and Identify widget).  Layer names for all Imagine attributed rasters will not display:

https://www.sciencebase.gov/flexviewer/USMinMap/
0 Kudos
by Anonymous User
Not applicable
Original User: rscheitlin

Barnaby,

   I am not sure where to begin. Well your new site is using the ArcGIS Viewer for Flex 3.6 (you can know this by right clicking on the map and choosing "About ArcGIS Viewer for Flex"). You are using version 3.4 of my Identify widget (not a good idea to use an old version in the new viewer). You should also update your other widgets of mine to the latest versions, i.e. TOCWidget version 3.4 to the eLayerListWidget 3.6, Swipe Spotlight Widget version 3.3.1 to version 3.6. You can know what version of most of my widgets you are using (in the last several releases) by holding the ALT key and clicking on the widget title.

   I have not programed the widget to be configured the way you are configuring it. You should have a minimum of:

<layers onlythese="false" />
But even that is ill advised and considered lazy configuration.

Your 3.0 version of the viewer and widget worked the way you desire because it is connecting to your 10.01 server and identify results were returned differently with that server version.

on your new server the layers name for your img files is not returned by the server.

Here are some urls for you to paste in your browsers address bar to demonstrate the difference.

Old Server:
http://cmerwebmap.cr.usgs.gov/ArcGIS/rest/services/Landsat7_West/MapServer/identify?geometryType=esr...

New Server:
https://www.sciencebase.gov/arcgis/rest/services/usminmap/Landsat7_West/MapServer/identify?geometry="x"%3D-13457161.577658717%2C"y"%3D4844889.40911028&geometryType=esriGeometryPoint&sr=102100&layers=all&layerDefs=&time=&layerTimeOptions=&tolerance=5&mapExtent=-17688715.46352495%2C2491851.930380039%2C-8296133.427844986%2C6968004.306758771&imageDisplay=1920%2C915%2C96&returnGeometry=false&maxAllowableOffset=&geometryPrecision=&dynamicLayers=&returnZ=false&returnM=false&gdbVersion=&f=html

Now this is not a show stopper but it is a problem when users do not configure the IdentifyWidget.xml specifically for their data layers.

So the resolution is to configure the widget for your data:

    <layers onlythese="false">
        <layer>
            <name>3/27/13 - reduced vegetation supression - AA11</name>
            <id>2</id>
            <url>https://www.sciencebase.gov/arcgis/rest/services/usminmap/Landsat7_West/MapServer</url>
            <fields>
                <field name="Red" alias="Red"/>
                <field name="Green" alias="Green"/>
                 <field name="Blue" alias="Blue"/>
                 <field name="Contrast" alias="Contrast"/>
                 <field name="Materialid" alias="Material Id"/>
                 <field name="Count" alias="Count"/>
                 <field name="Opacity" alias="Opacity"/>
                 <field name="Pixel Value" alias="Pixel Value"/>
                 <field name="OID" alias="Object Id"/>
            </fields>
            <links/>
            <zoomscale>2000</zoomscale>
            <forcescale>true</forcescale>
        </layer>
</layers>
0 Kudos
BarnabyRockwell
Deactivated User
Hi Robert,

First of all, thank you for the awesome widget, without which my Flex apps would be nearly useless.  As goes the widget, so goes my app.  I'm surprised that such core identify functionality isn't built into the Flex Viewer as it is so important, especially as it is built into the now-defunct .NET viewer that is available in Server 10.0.x.

Second, thank you for your reply to my inquiry.  I appreciate your help!  I am not a web developer, and am learning all this Server stuff on the fly to get my maps online.  So please forgive my ignorance when it comes to configuring your widget.

I manage the cmerwebmap web app.  The ScienceBase app is managed by another group in another office/division, and they are responsible for handling the viewer and widgets for their web app.  This group suggested that I remove the <layers> section, as that is how they got the widget to work for them.  I will suggest to them that they update their widgets to current versions.

I am experimenting with Server 10.2 and Flex Viewer 3.6 on another test machine to explore the functionality differences with Server 10.0/Flex 3.0 on our operational server.   With Server 10.0, the Identify widget 3.0.2 worked perfectly after install with no configuration whatsoever.

I added the layer configuration you suggested to my xml, but still the layer names will not display, so that does not appear to be a resolution to my issue*.  The issue appears to be that the Server is not returning the layer names of my rasters, as you mentioned. I tried those urls you provided, and it is interesting that Server 10.0 returns exactly what I want, and Server 10.2 does not, all from the same raster data. Do you or anyone else know if there is a way for me to make Server 10.2 to return those layer names as Server 10.0 did?   If there is no way to do so, I doubt I will ever upgrade my operational server beyond 10.0.  I wonder if that is a bug with Server 10.1 and 10.2?

* (My web app contains about 60+ such rasters, so I sincerely hope that I don't have to manually enter all that information into the xml for each of them.  I cannot get the Add Layers functionality to work when editing widget settings in the Flex App Builder, as I mentioned in my first post, which may be related to how Server 10.2 serves the raster layers.)

(On a private Flex app on my test server, the Identify widget version is listed as 3.5.1 when I use the ALT method, even though version 3.6.2 is installed.  The Swipe widget version is listed as 3.5 even though 3.6 is installed.  ELayerlist widget version is listed as 3.5.1 even though 3.6 is installed.)

Thanks again!
0 Kudos
by Anonymous User
Not applicable
Original User: rscheitlin

Barnaby,

I added the layer configuration you suggested to my xml, but still the  layer names will not display, so that does not appear to be a resolution  to my issue*.
I tested this using your mapservice and version 3.6.2 of my Identify Widget and it worked perfectly.

I am not aware of anything you can do to get ArcGIS Server 10.1 or 10.2 to return the layer name for rasters.

My web app contains about 60+ such rasters, so I sincerely hope that I  don't have to manually enter all that information into the xml for each  of them.
for the widget to be configured properly you will have to list each layer (assuming you want the rasters layer names) On a side note of this do your end users really need to see the Red, Green, Blue, OID and other fields of your raster layers?.. If not then you eliminate these fields by doing the configuration of that layer manually as I have suggested.

On a private Flex app on my test server, the Identify widget version is  listed as 3.5.1 when I use the ALT method, even though version 3.6.2 is  installed
Assuming that you are still talking about using App Builder. I would suggest that you use the manage custom widgets in app builder and remove all your custom widgets and re-add the 3.6 versions (because the ALT key method of determining versions of my widgets you are using is the most accurate tell of the real version your app is using).
0 Kudos
BarnabyRockwell
Deactivated User
Here is a shot of ArcMap 10.2 into which I loaded the Landsat7_West map service from the 10.2 Server.  The ArcMap Identify tool results do show the layer name as expected:

http://cmerwebmap.cr.usgs.gov/images/untitled.jpg
0 Kudos
by Anonymous User
Not applicable
Original User: brESRI

My network is having severe problems this morning, so I will retry my test app using the edited xml.  I will also re-install the widgets.

And yes, I was referring to App Builder.
0 Kudos
by Anonymous User
Not applicable
Original User: rscheitlin

Here is a shot of ArcMap 10.2 into which I loaded the Landsat7_West map service from the 10.2 Server.  The ArcMap Identify tool results do show the layer name as expected:

http://cmerwebmap.cr.usgs.gov/images/untitled.jpg

Barnaby,   Yep. ArcMap and ArcGIS Server are two different animals.
0 Kudos
BarnabyRockwell
Deactivated User
When you say that the edited xml worked perfectly, did you see layer names in the ID results? If so, could you post a screenshot? I do not, at least so far.

And I removed and re-installed the 3.6 series widgets, but the old version #'s are still listed when I ALT-click the widget titles.

ALT-click:

[ATTACH=CONFIG]30721[/ATTACH]

App Builder:

[ATTACH=CONFIG]30722[/ATTACH]

Edit: Ah -ha! I had to rename the Identify widget folder, and then re-add the 3.6.2 widget to my app, and now I see correct version! So I have just learned that the widget folder in the flexviewers app folder tree should be deleted/cleared when upgrading widget versions. Who know what problems will occur when you overwrite widgets???
0 Kudos
by Anonymous User
Not applicable
Original User: rscheitlin

Barnaby,

   Once you ensured that the latest versions of the widgets are in App Builder by going through the manage custom widgets as I suggested. All you need to do is remove the widgets from your test site and re-add the widget.

Yes the layer name does appear in my tests:

[ATTACH=CONFIG]30724[/ATTACH]

Based on this configuration being used:

        <layer>
            <name>3/27/13 - reduced vegetation supression - AA11</name>
            <id>2</id>
            <url>https://www.sciencebase.gov/arcgis/rest/services/usminmap/Landsat7_West/MapServer</url>
            <fields>
                <field name="Red" alias="Red"/>
                <field name="Green" alias="Green"/>
                 <field name="Blue" alias="Blue"/>
                 <field name="Contrast" alias="Contrast"/>
                 <field name="Materialid" alias="Material Id"/>
                 <field name="Count" alias="Count"/>
                 <field name="Opacity" alias="Opacity"/>
                 <field name="Pixel Value" alias="Pixel Value"/>
                 <field name="OID" alias="Object Id"/>
            </fields>
            <links/>
            <zoomscale>2000</zoomscale>
            <forcescale>true</forcescale>
        </layer>
0 Kudos