Identify Widget Version 2.21 - 11/16/2021

254321
524
02-23-2015 05:20 PM
Labels (1)

Identify Widget Version 2.21 - 11/16/2021

Live Preview Site

Web AppBuilder for ArcGIS | Help - Identify Widget

 

List of the latest enhancements and changes:

  1. Added 10 max rows max display to widgets dropdowns.
  2. Fixed a mixed protocol issue in code

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

Last 2.17 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
RobertScheitlin__GISP
MVP Emeritus

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.

by Anonymous User
Not applicable

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

RobertScheitlin__GISP
MVP Emeritus
by Anonymous User
Not applicable

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.

RobertScheitlin__GISP
MVP Emeritus

Randy,

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

by Anonymous User
Not applicable

Thank you. Perfect. I overlooked that.

SaidAl-Zakwani
New Contributor

Dear Robert,,

I appreciate your efforts

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

RobertScheitlin__GISP
MVP Emeritus

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.

RobbieBagby
New Contributor III

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

RobertScheitlin__GISP
MVP Emeritus

Robbie,

   No Image services use a completely different task to identify.

katahV
by
New Contributor II

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

RobertScheitlin__GISP
MVP Emeritus

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.

katahV
by
New Contributor II

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!

ParksCamp
New Contributor III

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

RobertScheitlin__GISP
MVP Emeritus

Parks,

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

ParksCamp
New Contributor III

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

Parks

AlanEnglish
New Contributor

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?

RobertScheitlin__GISP
MVP Emeritus

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.

by Anonymous User
Not applicable

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. 

RobertScheitlin__GISP
MVP Emeritus

Kevin,

   I will consider this enhancement request.

by Anonymous User
Not applicable

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. 

RobertScheitlin__GISP
MVP Emeritus

Kevin,

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

by Anonymous User
Not applicable

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

LeoLadefian5
Occasional Contributor II

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

RobertScheitlin__GISP
MVP Emeritus

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

GajananBalasubramaniam1
New Contributor III

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

RobertScheitlin__GISP
MVP Emeritus

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

GajananBalasubramaniam1
New Contributor III

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

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

RobertScheitlin__GISP
MVP Emeritus

Are there any errors in your browsers web console?

GajananBalasubramaniam1
New Contributor III

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)

RobertScheitlin__GISP
MVP Emeritus

Gajanan,

   OK, I am looking into the error.

RobertScheitlin__GISP
MVP Emeritus

Gajanan,

  OK, version 2.9.0.1 fixes that issue.

GajananBalasubramaniam1
New Contributor III

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

katahV
by
New Contributor II

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

GajananBalasubramaniam1
New Contributor III

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

RobertScheitlin__GISP
MVP Emeritus

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).

GajananBalasubramaniam1
New Contributor III

Thanks all!!

I created a new web app and it works perfectly!

Thank you

RichBell
Occasional Contributor

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 

RobertScheitlin__GISP
MVP Emeritus

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;
      },
LefterisKoumis
Occasional Contributor III

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. 

HelenZhou
Occasional Contributor II

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

RobertScheitlin__GISP
MVP Emeritus

Helen,

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

LefterisKoumis
Occasional Contributor III

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

RobertScheitlin__GISP
MVP Emeritus

Strange I just tested and 2.8 version downloaded fine.

LefterisKoumis
Occasional Contributor III

ok thanks. I just did and it works now.

LefterisKoumis
Occasional Contributor III

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 

HelenZhou
Occasional Contributor II

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

RobertScheitlin__GISP
MVP Emeritus

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).

HelenZhou
Occasional Contributor II

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

RobertScheitlin__GISP
MVP Emeritus

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
Last update:
‎11-16-2021 06:51 AM
Updated by: