Identify Widget Version 2.17 - 1/20/2021

197476
459
02-23-2015 05:20 PM
Labels (1)

Identify Widget Version 2.17 - 1/20/2021

Live Preview Site

Web AppBuilder for ArcGIS | Help - Identify Widget

 

List of the latest enhancements and changes:

  1. Fixed an issue when there are no configured layer in the widget.

 

Previous enhancements and changes:

  Check the "Older enhancements or changes.txt" in the download for a complete list.

 

Older Versions

Last 2.4 version

Last 2.5 version

Last 2.7 version 

Last 2.8 version 

Last 2.9 version 

Last 2.10 version

Last 2.11 version

Last 2.12 version

Last 2.13 version

Last 2.14 version

Last 2.15 version

 

ATTENTION:

  1. If you are hosting this widget on a https server, then make sure you change all your excludelayer urls to https. Failure to do so will result in widget failure.

 

Features:

  • Specify which layers are to be identified
  • Format the fields for identify layers
  • Configure links and link icon
  • Close result popups after a number of seconds of losing focus
  • Choose which layer to identify in the widget UI using drop down list
  • Specify layers to be excluded from identify operation
  • Choose to only identify configured layers
  • Replace null values with empty strings
  • Configure default symbology for identify results
  • Specify Visible, Top, or All layers to be identified.
  • Option to Keep Identify Active
  • All Identify geometry types are configurable
  • Option to use map time
Labels (1)
Attachments
Comments

Mark,

  No there is not. But, Do you really need all 200 layers to be identify-able?.. Another solution is to set the onlythese property to false and if will identify any layer in the map but you can not configure which fields will be visible as all fields will be returned.

Are there instructions for setting this up and using it? Thank you

Thank you,

The widget actually is deployed where I work. I just would like some documentation explaining how it works. I haven't had luck getting it to work yet.

Randy,

   The help documentation link is at the top of this thread.

Thank you. Perfect. I overlooked that.

Dear Robert,,

I appreciate your efforts

How could i increase the number of results to be more than 1000? 

Said,

   The number of results returned in controlled by the map service you are using. The maxRecordCount has to be adjusted in ArcGIS Server manager. There are dozens of thread on GeoNet about how to do this.

Does this widget support identifying image services like this one: CoastalPlanning/US_Category1_MOM_Inundation_HighTide (ImageServer) ?

Robbie,

   No Image services use a completely different task to identify.

Robert,

First of all thank you for your great widget 😃

I am trying to configure the Widget to get the GlobalId as display attribute in the Identify List. Unfortunately I am not getting back the GlobalId from the Identify query. It does not exist in the returned list of attributes from the Identify Task, although it can be found in the list of fields. 

Do you have any Idea why? Is there an option to configure the returned by the Identify Task in AGS?

Thanks in advance!

Victor

Victor,

  I just tested using a layer that has GlobalID field and added all fields in the Identify widget settings and when I identified a feature from that layer the GlobalID was returned in the results. That being said I am not sure why your is not working the same.

Thanks for your test. I create a MXD from scratch, added the feature, publish, and it is working as desired. I think somehow my MXD / Service is corrupt.
Thanks again!

Robert,

Great work on the widgets!

I found a possible bug in the 'Use Map Time' functionality where you use only the timeExtent.endtime to create the timeExtent for the Identify task.

Line 761 in Widget.js

identifyParams.timeExtent = new TimeExtent(this.map.timeExtent.endTime, this.map.timeExtent.endTime);

Is there a reason you do this instead of using beginTime for the first parameter? I had to make this change for the Identify tool to correctly work on my time-enabled layers.

Thanks,

Parks

Parks,

   I am not sure why I had it that way. You mean startTime (not beginTime) right?

You are correct (startTime). Thanks for the fix!

Parks

Robert, I was introduced to you by Cloud Point as a person of a great resource.

We installed WAB 2.9 today, config and imported a AGOL WA, then went "Widget Hunting".

So many cool widgets out there!

What started all this was your Identity Widget screen shot I saw on an old URL for Cloud Point.

We found and downloaded your 2.7 and 2.8 version to test, 

Are either of these capable of running on 2.9?

When we select the new Identify widget then select OK, the 3 flashing dots go on forever (over 30 mins) till I  Hit "OK" or "Cancel".

If "OK" hit, the Icon loads, and when used, it shows your same sample layer list shown in the documentation, not the loaded layers.

Are we overlooking something simple?

Alan,

   I just tested the widgets settings using version 2.8 in WAB Dev 2.9 and had no issue at all... Can you make sure you are using version 2.8 of the widget by holding the ALT key and clicking on the widgets (some where in the white space)? This will display a widget info dialog.

widget works perfect in 2.9 here. One question - is there a way to make it highlight the feature? With the typical cyan blue halo in the default popup behavior. 

For example if you highlight multiple parcels, would be nice to see the one you click in the Result list then get a blue halo.  I do not want to use the popups to show the user which feature goes to which result because my webmap popups have lots of nice custom formatting so I keep them and hide the Identify popup. Plus I'd rather not have the popup using screen real estate (even though I've made them moveable, but it conflicts with the on-hover Identify behavior negating much of that benefit of moveable popup anyhow)   Identify works perfectly but this would be very helpful, to highlight to the end user which Result goes to which feature on the map. 

Kevin,

   I will consider this enhancement request.

Perfect! I checked eSearch and the way it does it (blue highlight) is perfect. Thanks Robert!  I like Identify because it does 'all layers' vs the eSearch. Also because it is a little simpler (for our public viewer that is good).   So I am using both; I use the eSearch for the Parcels and to leverage its By Value. We all appreciate your work and dedication as well to the community on here. 

Kevin,

   This ability to highlight the selected result has now been added to version 2.9.

Robert - I can confirm, it works perfectly.  Sweet.

Is there any way to control the order of the results? I can't remember if it has to do with the configuration.

If I remember correctly then yes it is based on configuration order.

I configured the widget and when I execute it, nothing happens and says "No Results Found". 

I checked the Network tab in Developer Tools in Chrome and the query is being executed. 

What am I doing wrong? 

Widget Version: 2.9

Web AppBuilder version: 2.9

Is the layer you which to identify visible in the map? Have you configured that layer to be identified in the widget settings screen?

Yes its visible in the map and configured in the widget. 

I enabled Force Scale and Zoom Scale at 3000 and still no luck. 

Are there any errors in your browsers web console?

Yes there is 1 error. Here are the first 3 lines:

ReferenceError: index is not defined
at Object.showQueryResults (Widget.js?wab_dv=2.8:2030)
at Object.<anonymous> (Widget.js?wab_dv=2.8:785)

Gajanan,

   OK, I am looking into the error.

Gajanan,

  OK, version 2.9.0.1 fixes that issue.

Hi Robert, 

Thank you for looking into this. I really appreciate the help. 

 I tried the new zip file and It`s still not working. Here is the first couple of lines of the error: 

ReferenceError: index is not defined
at Object.showQueryResults (Widget.js?wab_dv=2.8:2030)
at Object.<anonymous> (Widget.js?wab_dv=2.8:785)
at init.js:63
at h (init.js:107)
at q (init.js:107)
at d.resolve (init.js:109)
at init.js:457
at h (init.js:107)
at q (init.js:107)
at resolve (init.js:109) "ReferenceError: index is not defined

I guess you are still accessing the old code, so first you have to clean the browser cache and then launch again the app. 

I tried that and also tried it in incognito mode and still no luck. 

Gajanan,

   The fact that the error says "Widget.js?wab_dv=2.8:2030" tells me that you are not using the new code (i.e. 2.8 in the error and the new code is 2.9).

Thanks all!!

I created a new web app and it works perfectly!

Thank you

Identify 2.9.01 will not auto zoom to point but it will zoom in the "Zoom too" within the pop up window?

I am receiving the following error in both 2.9 and 2.9.01 versions

Appears to be in the "_getPointSymbolSize" function 

Rich,

   Thanks for reporting this bug. I will get it addressed in the next release. In the mean time here is the missing function you can add to the Widget.js:

      _getPointSymbolSize: function (symbol) {
        var retVal;
        if(symbol.hasOwnProperty('width')){
          retVal = Math.max(symbol.height, symbol.width) + 4;
        }else{
          retVal = symbol.size + 4;
        }
        return retVal;
      },

For future reference, Tried hard reset to clear your browser cache. Chrome and Firefox are notorious to resist clearing cache.

These are the steps for Chrome.

  1. Press F12. An extra window will open with chrome tools. Just ignore it for now, but do not close it.
  2. On the refresh of the browser right next to address bar, right-click on it and select the option shown below. It will refresh your browser.
  3. close the extra window that opened in step 1. 

Hello Robert,

We use your identify widget in a Web Appbuilder application. In the application, users can add layers dynamically. To identify those new added data, they have to choose "identify from All Layers" to get the all the feature information loaded in the result panel, and then scroll down to find the specific feature. Is there a way that the identify from drop down list can dynamically add all visible layers from the map? Thanks

Helen

Helen,

  Other have asked about this but it is just not in my plans for this widget.

Hi Robert. I tried to download the ver 2.8 from the link above, but I get the error 503, "Service Unavailable".

Strange I just tested and 2.8 version downloaded fine.

ok thanks. I just did and it works now.

Helen, try this version of the Identify widget. It modifies Robert's widget to list only the layers on the map, ignoring the config file.

https://community.esri.com/docs/DOC-12399-identifyzip 

Hello Robert,

For the identify link, can it be opened as a pop up of defined width and length instead of a new tab?

Thanks

Helen

Helen,

   No that is something that is controlled by the browser and the users preference setting for that browser (i.e whether it open in a new tab or new window).

Hi Robert,

I have found that if a text field value contains colon, identify result displays value which truncates the part starting from colon. Instead of display "As of 11/28/2018: 50 percent of the task is finished", it displays "As of 11/28/2018". Can you check?

thanks

Helen

Helen,

   I was using ": " as a split point in the result list string. So it is going to do what you are seeing right now because of that. You will have to update several lines in code to make it do otherwise.

Update these line to:

//List.js file @ line 109
attValArr = attArr[i].split('::');
//Widget.js
//@lines 275 - 277
this.resultFormatString = attribName + "::" + attribValue + '<br>';
  }else{
this.resultFormatString = '<font><em>[attribname]</em></font>::<font>[attribvalue]</font><br>';

//@Lines 1241 - 1245
if(cArr[1] !== 'NA'){
  content = content + this.resultFormatString.replace('[attribname]', cArr[1]).replace('[attribvalue]', value).replace('::', ': ');
}else{
  content = content + this.resultFormatString.replace('[attribname]', cArr[0]).replace('[attribvalue]', value).replace('::', ': ');
}

//@line 1344
content = content + this.resultFormatString.replace('[attribname]', fld).replace('[attribvalue]', value).replace('::', ': ');

//@lines 1939 - 1943
if(cArr[1] !== 'NA'){
  content = content + this.resultFormatString.replace('[attribname]', cArr[1]).replace('[attribvalue]', value).replace('::', ': ');
}else{
  content = content + this.resultFormatString.replace('[attribname]', cArr[0]).replace('[attribvalue]', value).replace('::', ': ');
}

//@line 2040
content = content + this.resultFormatString.replace('[attribname]', tfldAlias).replace('[attribvalue]', value).replace('::', ': ');
Version history
Revision #:
3 of 3
Last update:
‎01-20-2021 06:34 AM
Updated by: