LocalLayerWidget Version 2.5 and AccessifizrWidget Layer - 09/28/2017

191672
507
01-08-2015 07:55 AM
AdamDrackley
Frequent Contributor

I've been having a blast playing around with the new Web AppBuilder, and have taken a few cracks at putting together some custom Widgets that I'd like to share with the community.  I hope these can assist in everyone's future Mappmaking endeavours!

LocalLayerWidget

LocalLayerWidget v 2.5

September 28 2017 : LocalLayerWidget v2.5 released:  This major release includes the following enhancements for the widget.  Thanks to everyone who's donated!:

Release LocalLayerWidget 2.5 · cmndrbensisko/LocalLayer · GitHub 

  • Support for 2.5 Release of ArcGIS Web App Builder
  • Support for Custom Layers via Transformers
  • Demos and sample apps
  • Prototype 3D Widget
  • Dynamic GUI changes at runtime and css insertion via odds.json/odds.css
  • And more!

November 14, 2016: LocalLayerWidget v2.2 released:  This major release includes the following enhancements for the widget:

Release LocalLayer v2.2 · cmndrbensisko/LocalLayer · GitHub 

  • Related Table Viewing and Editing
  • ImageService Viewing and Popups
  • WMS Service Viewing and Popups
  • Ability to integrate with the IncidentAnalysis widget
  • Hide Layer In Legend capability added
  • Dynamic mode added, allowing for URL-fed configuration files
  • And more!

May 18, 2016: LocalLayerWidget v.2.0 released:  This substantial change for Web App Builder v.2.0. removes the need to edit any core files in the Web App Builder, unlike previous versions.  A slight change will still be necessary for the AttributeTable widget to work properly with LocalLayerWidget layers.

  • https://github.com/cmndrbensisko/LocalLayer/releases/tag/v2.0
  • Enhancements:
    • Added autorefresh capability for dynamic layers, and sub-minute decimal values can be specified for time.
    • Added support for non-consecutive sublayer numbering to support 10.3.1 mapservices
    • Editor Tracking via an organizational Active Directory instead of ArcGIS Online User now supported
  • Bug Fixes:
    • View Attachments now works for Dynamic Layers
    • Addition of GeoJson layers fixed
    • Fix to MapService sublayer visibility when no sublayers are selected to display by default.

Mar 29, 2016: LocalLayerWidget v.1.3.1 released; Contains bugfixes to v.1.3. related to custom rendering for Feature Layers and toggling sublayer visibility in the LayerList widget.

Mar 22, 2016: LocalLayerWidget v.1.3 is now available!  (Note the version naming change; Version 1.3 refers to its compatibility with v1.3 of the WAB - This is indeed the latest version of the widget as of March 22, 2016).  Be sure to read the github page to see what tweaks need to be made to ensure that everything continues running smoothly in version 1.3 of the Web AppBuilder.

  • Includes support for GeoJSON and WebTileLayers
  • Custom Symbology and Labelling Options for Feature Layers
    • Currently requires the use of playground to generate custom json layer and label styling for Feature Layers.  For more information, please follow the instructions on the Github page.

Feb 10, 2015: LocalLayerWidget v.1.5 is now available!  This release contains full support for adding Tiled layers to your application directly from ArcGIS Server, in addition to the Basemap, Dynamic, and Feature layers available before.  Feel free to grab the widget from our Release page located at https://github.com/cmndrbensisko/LocalLayer/releases.

Feb 2, 2015: LocalLayerWidget v.1.2 is now available!  This release provides a great GUI developed by Robert Scheitlin to more easily add Feature, Dynamic, and Basemap layers to your ArcGIS Web AppBuilder Applications.  Take it for a spin, and please keep us informed of any bugs or desired enhancements through our Github Issue Tracker located at https://github.com/cmndrbensisko/LocalLayerWidget/issues.

Jan 12, 2015: Note that LocalLayerWidget v.1.1 is now available, which provides Click-To-Identify support and the option to add Feature and Basemap layers in addition to Dynamic layers.

The LocalLayer Widget is intended to allow the direct addition of MapServices to an ArcGIS Web AppBuilder application, without needing to wrap the desired services in an ArcGIS Online/Portal Web Map.

https://github.com/cmndrbensisko/LocalLayerWidget

Basically, your basemap will still need to come from Portal/AGOL, but otherwise you just provide direct URLs to your own MapServices in the widget's configuration settings.  The MapServices should load and display as usual in the map, and cooperate with the Legend, LayerList, and Attribute Table widgets. Click-To-Identify functionality won't work currently, though, because the current WAB implementation relies on Portal for all the popup info.  As stated in the January 12th 2015 release, popups are fully customizable.  Note that it's not an in-panel widget, so you'll need to follow a few extra steps in the project's Readme file.

AccessifizrWidget

Let's make Mapps accessible for everyone!  With an eye on WCAG compliance, the Accessifizr Widget is designed to help make web applications keyboard navigable without having to modify core application code and UI.

https://github.com/cmndrbensisko/AccessifizrWidget

Information about how to configure this widget is available in the core Accessifizr.js library project available here‌, but the gist is that you create a JSON-based 'roadmap' detailing the keyboard navigation of your web application, and how it should change in response to users entering modal menus, hitting the escape button, etc.  For applying descriptive alternate text to page elements, the widget leverages dojo's built-in internationalization support to specify multilingual alternate text strings.  The end result is a web app that, hopefully, is a bit easier to use for people with mobility or visual challenges.

507 Replies
FinbarGillen
Frequent Contributor

Hi Robert,

Yeah the WebMap and all other widgets are working fine. I have an Ordnance Survey Northern Ireland map as my basemap.

Finbar

0 Kudos
SubuSwaminathan1
Deactivated User

Hello Robert

I am using 1.5.1 version with WAB 1.1. I realized that I am unable to delete sublayers from a dynamic layer(map service) added in the LocalLayer widget configuration.

Is my observation correct? or is it a bug that got fixed in a later release? Nothing happens when I click the delete button?

The reason I am trying to do this is that I am getting very slow performance. The same map service works much faster when accessed through the enhanced search widget.

Thanks

Subu

0 Kudos
RobertScheitlin__GISP
MVP Emeritus

Subu,

   The only thing that the delete button does for Dynamic sublayers is delete the popup if one is configured. There is no ability in the widget to remove a sublayer from a dynamic map service.

0 Kudos
AdamDrackley
Frequent Contributor

Just a quick note that I have a 1.7 release branched in github with the following enhancements.  We're still doing some testing on our end, but if you feel adventurous and would find some of the improvements beneficial in your workflows, feel free to explore the candidate.

cmndrbensisko/LocalLayer at LocalLayerv1.2.1 · GitHub

Enhancements:

  • Experimental geoJSON Support (Currently only supports point geometries which contain a single standard schema, as well as Non-standard JSON Arrays which include Lat/Long keys)
  • WebMapTile support, including the ability to add these as either Tile Layers or Basemaps (If you haven't played with Stamen's watercolour map yet, it's gorgeous,  maps.stamen.com)
  • Sublayer Visibility in Dynamic MapServices re-introduced, and should(!) now work properly.  Grouplayer visibility toggling allowed.  (Re-configuration of your layer will likely be required)
  • The ability to set MinScale and MaxScale for added layers.

The highest kudos to Robert for pushing this project forward. I'm actually just beginning to use this widget for a few projects professionally, so this should hopefully result in more time dedicated to the widget's ongoing improvement and enhancement.

BarnabyRockwell
Deactivated User

Grouplayer visibility toggling allowed.  (Re-configuration of your layer will likely be required)

Great, Adam.  I'm looking forward to trying it out. 

I'm wondering about what the "re-configuration" will entail.

0 Kudos
AdamDrackley
Frequent Contributor

If you want to give it a try, I'd be interested to know how it operates 'out of the box' in your particular case with a pre-existing configuration file.  In the 1.6 version of the application, the config file kept track of which layers to 'hide' (IE; which were left unchecked in your Dynamic Layer Settings Window).  The 1.7 version of the app takes the approach of remembering which layers to show by default instead.  I found this made the process much easier to keep track of from a code perspective.

If you have an especially complex configuration file, let me know.  There may be ways to rethink this approach prior to the release.

0 Kudos
BarnabyRockwell
Deactivated User

Adam,

Thus far, using my existing LL widget config file (quite complex), it has locked up and crashed my WAB Dev editing session three times after entering the widget setup and simply entering and exiting a layer, and clicking OK.  No changes made to visibility. 

I will keep testing....

0 Kudos
BarnabyRockwell
Deactivated User

One thing is that 1.2.1 shows the layers in correct order from top to bottom, whereas 1.2 showed them in reverse order (top-most layers in viewer are shown at bottom).

I appears that for dynamic layers with complex layer visibility settings as set in mxd, and a pre-existing LL widget config file, one must edit the layer visibility for every sub layer for the layer to show in the viewer, which can take a very long time.

I have one layer that is on by default and overlies a layer which is off by default.  When I try and configure the underlying "off" layer, I get the hang/crash.

Edit:  the hang/crash seems to occur when I enter/exit a layer in the LL widget GUI when that layer is off by default and is not the top-most layer.

0 Kudos
BarnabyRockwell
Deactivated User

It is my general opinion that the new widget version should work seamlessly with a config file from 1.2 with no need to edit layers and visibility.  That will save most users much time and headache.  I can give you my 1.2 config file if it would help you.

Remember all layer pop-up configurations are saved in the LL widget config file, and these are a real pain to remake, another reason why the existing LL config from 1.2 must work with the new widget version.

0 Kudos
AdamDrackley
Frequent Contributor

If you could send your configuration file along, that would be great.  It sounds like the code is falling into an infinite loop somewhere, and I'd like to figure out what conditions cause this.  Thanks for being the canary in the coalmine on this one, Barnaby.  When I revisit the code today I'll see if I can make it more compatible with existing configs.

0 Kudos