Can someone please explain the major differences between Callouts and Popups and when they should be used? Thank you.
I'm using v100.1 WPF
Great question, because it is an important distinction to make. I'll review the Guide/API doc on this to see where we can clarify.
A callout is a UI element that can be used to display some useful information on a map. The information can be related to a specific point on the map, or it can be related to the location display. It can also be about a geo element like a graphic or a feature that’s displayed on the map.
Popups are part of the ArcGIS information model and can be configured for individual layers (or sublayers) in a map via a popup definition. They can also be used with graphics and graphics overlays, and pixels and rasters. Popups determine how to display the data of a feature, graphic or pixel (geo elements) in a way that is easier to understand than basic attributes in a row/column format. They enable you to convert raw data into an information display that is both powerful and easy to read.
For example, when the user clicks on the MapView you could perform an Identify operation and use the Popup returned for the identified GeoElement as the content for a Callout.
On the shorter-term roadmap is a popup manager that provides helper methods and properties to make it easier for you to build your own UI for Popups.
For the slightly-longer-than-short-term roadmap we're also considering adding a standard Popup UI to the open source Toolkit that you could use out of the box or customize for your needs.
I was wondering about the status of the slightly-longer-than-short-term roadmap about standard Popup UI. Any beta for that available soon?
The Popup UI in the Toolkit is a feature we are planning to work on this summer. What .NET API(s) are you using (from Android, iOS, UWP, WPF)? We can try to work on those first to have you testing something sooner. Before it's a beta, you'll be able to test from the master branch - either building locally or using the CI NuGet package.
I'm using the WPF Runtime. I expect to implement the functionality within the next couple of weeks, so I was hoping for a shortcut But I'm still interested in a master branch whenever available.
I've just started researching popups, and run into some issues. The documentation is a bit scant, from what I can find. However, I am a trooper and somewhat clever cookie, so I should be able to figure it out. My WebMap has enabled popups, but no Popups are available in the IdentifyLayerResult, which I find odd. IdentifyLayerAsync with returnPopupsOnly = true, returns nothing for the layer I've configured. I've experienced before that adding a layer to my WebMap doesn't show up until after several hours, or perhaps the next day, so the same could be the case for this change.
For self implementation, I'm guessing a combination of PopupManager, feeding it some information from the elusive Popups in the result, and a few other classes would be the way to go?
I'm currently working on an app internally that uses popups. I'll pull the functionality into a sample app and share it with you ASAP. Stay tuned.
I attached the sample. You'll need .NET Runtime 100.2.1. Hope this helps!
Thanks. Any idea why returnPopupsOnly = true doesn't return anything? I configured popups on the WebMap yesterday, but the popups didn't show up until today.
I see you created a new issue regarding that. WPF API does not get the latest changes to a web map
I have a branch with an early prototype in the toolkit here: GitHub - Esri/arcgis-toolkit-dotnet at dotMorten/PopupView
I did encounter a couple of minor issues that we fixed for Update 3, so you might see a couple of minor issues with 100.2.1. It also needs some UI love, but it does more or less work.
To answer your question about what the difference is, the way I'd like to think of it is this:- The PopupDefinition is the description how to display attributes.
- The Popup is the "Model" for a specific feature which combines the Feature and the PopupDefinition.
- The PopupManager is the "ViewModel" for that Model.
- The PopupView in the Toolkit branch above is the View/presenter part for that ViewModel.
The Callout is merely a container synced to a location on the map. It's really just meant for showing a little bit of info, like the title, and can contain a button to open up a popup view/page for editing that features (some popup views are so large they obscure too much of the map). Technically you could put that PopupView inside the callout, but in my experience it isn't as great an experience as navigating to an edit page or opening a side-panel/window with that detailed view in it.
I was able to implement what I needed based on the post by Mara Stoica. I skipped the edit, attachment and symbol part, as that is not required at the moment. I will still take a look at the view when I can see the surface amongst the current workload, or if test feedback reveals it is required. I'm currently using daily2065, so I imagine the minor issues shouldn't be problem.
Keep up the good work
Retrieving data ...