Hello everyone, my name is Sven. I’m a university student based in Vancouver, BC, currently pursuing a degree in Computer Science with a minor in Geographic Information Science (GIS).
Inspired by the Save Session Widget for WebAppBuilder I have created the Save Instance Widget for Experience Builder.
Visit my website JensenGIS to download the compiled widget, view the demo video and Github repository. I would really appreciate anyones feedback on the Save Instance Widget. Thanks!
Here is more information about the widget:
The Save Instance Widget lets you save and share the current state of your web map in Experience Builder — including extent, visible layers, basemap, graphics, and more. It's inspired by the classic Save Session Widget from Web AppBuilder, but built specifically for ArcGIS Experience Builder.
You can download the latest compiled version of the Save Instance Widget from JensenGIS.
Once downloaded, follow Esri’s guide on how to add custom widgets to your Experience Builder installation.
That’s it — you’re ready to go.
Enter a name for the instance and click the Save Instance button.
Load an Instance
Click the Load Instance button to apply a previously saved map state.
Click the Edit Instance Name button and enter a new name when prompted.
Click Download Instance to export a .txt file containing that instance.
You can also download all saved instances using the Download Instances button at the bottom right of the widget.
Click Clear Instance Graphics to remove any graphics associated with the instance from the map.
I'd love to get instance-loaded graphics working with the Esri Draw Widget at some point. It’ll take a bit of setup, but if it’s something people are asking for, I’m happy to start looking into it — just let me know!
Click Delete Instance to permanently remove it from your saved list.
To share a saved instance, simply send the .txt file to another user. They can import it using the Upload Instances button in the bottom-left corner of the widget.
In the future, I’d love to add support for cloud storage of instances — let me know if that’s something you’d use!
Have a bug to report or a feature idea?
Please open an issue on this GitHub repo or leave a comment on this post.
I’m also happy to hear requests for:
Stay tuned — more tools are coming soon!
This is a really great widget. Awesome work, Sven! The only thing I think would be really useful with this widget is to overwrite Instances that already exist. For instance, if I open my instance (Austin's Instance) and move to a different spot or toggle the visibility of a few different layers, I would want to save my Instance with this widget without having to first delete and then save.
Hi @AustinWolf1994,
Thanks! I'm glad you like the widget.
Overwriting already saved instances is a great idea. I will implement this feature for the next release.
Thank you for your feedback!
Cheers,
Sven
This is a great widget, thank you for releasing it!
Some feedback I would suggest is changing the dialogue boxes like this:
To be something within the widget. This widget offers a function like this when the user clicks delete.
Some feedback I had with working @JeffreyThompson2 on the widget above was adding a user acknowledgment of local storage which the widget above has as well before automatically using local storage. Also a reminder for users that local storage is not a good solution for long term storage.
Other feedback request:
In the settings in developer edition, enable the option to have the clear instance graphics button be hidden or shown within the widget. If the application doesn't have the out of the box Draw tool, the button doesn't have anything to correlate with.
Enhancement Request: Instances look to be transferrable to any application, not one particular application. I implemented the widget in two testing sites with different URLs, and the saved instance of 1 can be viewed in the other. The request is for saved instances to be unique per application (URL).
@Brian_McLeer,
Thank you for all this amazing feedback and creating GitHub issues! Your Custom Draw Widget enhancements are an inspiration, very cool.
I am excited to begin implementing your requested enhancements this week! I have been working on an hosted version of the widget and would love to hear your feedback on the idea. The hosted widget stores the user's saved instances on a secure web server, users can access instances from any device/browser and share instances simply by inputting another user's email. I would love to get this hosted version working with the Custom Draw Widget so users can seamlessly update and share graphics in realtime.
However as of right now the Save Instance Hosted is on pause as I will resolve the GitHub issues first.
Cheers!
Sven
Thank you @SvenJensen for putting the time into this widget, I think many organizations will benefit from it! I like the idea of the Save Instance Hosted version.
Hello @SvenJensen this looks great !
I am using ExB Dev Edition 1.17, I placed your widget in the client\dist-prod\widgets folder but cannot see it in the widget list. I also tried to place it in the \client\your-extensions\widgets folder and run npm run build:prod (but I don't think it is necessary since it is already built) with the same result.
Is it working in ExB developer edition ? Or only in the portal ExB version.
[EDIT] I found that a custom widget should be placed in the client\dist\widget (and not dist-prod) folder after it has been built. Then you have to modify the widgets-info.json file to add information and manifest about it.
Now it is working in the dev edition. And I wonder if you have plan to add translation.
Anyway, great job !
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.