Difference between Callouts and Popups

3321
11
10-25-2017 07:07 AM
ChrisSmith10
New Contributor II

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

Tags (2)
0 Kudos
11 Replies
MichaelBranscomb
Esri Frequent Contributor

Hi,

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.

Callouts: 

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:

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. 

Cheers

Mike

0 Kudos
BjørnarSundsbø1
Occasional Contributor II

I was wondering about the status of the slightly-longer-than-short-term roadmap about standard Popup UI. Any beta for that available soon? 

0 Kudos
MichaelBranscomb
Esri Frequent Contributor

Hi,

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.

Cheers

Mike

0 Kudos
BjørnarSundsbø1
Occasional Contributor II

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? 

0 Kudos
MaraStoica4
Occasional Contributor

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.

MaraStoica4
Occasional Contributor

I attached the sample. You'll need .NET Runtime 100.2.1. Hope this helps!

Mara

BjørnarSundsbø1
Occasional Contributor II

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.

0 Kudos
dotMorten_esri
Esri Notable Contributor
0 Kudos
ClarkLangridge
Occasional Contributor II

It doesn't work, I just get a bunch of errors:

Severity Code Description Project File Line Suppression State
Error CS1026 ) expected PopupSample C:\Users\CL5199\Desktop\PopupSample\PopupSample\PopupSample\BindingSupport\IdentifyController.cs 99 Active
Error CS1002 ; expected PopupSample C:\Users\CL5199\Desktop\PopupSample\PopupSample\PopupSample\BindingSupport\IdentifyController.cs 99 Active
Error CS1513 } expected PopupSample C:\Users\CL5199\Desktop\PopupSample\PopupSample\PopupSample\BindingSupport\IdentifyController.cs 99 Active
Error CS1026 ) expected PopupSample C:\Users\CL5199\Desktop\PopupSample\PopupSample\PopupSample\BindingSupport\IdentifyController.cs 125 Active
Error CS1002 ; expected PopupSample C:\Users\CL5199\Desktop\PopupSample\PopupSample\PopupSample\BindingSupport\IdentifyController.cs 125 Active
Error CS1513 } expected PopupSample C:\Users\CL5199\Desktop\PopupSample\PopupSample\PopupSample\BindingSupport\IdentifyController.cs 125 Active
Error CS1513 } expected PopupSample C:\Users\CL5199\Desktop\PopupSample\PopupSample\PopupSample\BindingSupport\IdentifyController.cs 130 Active
Error CS1026 ) expected PopupSample C:\Users\CL5199\Desktop\PopupSample\PopupSample\PopupSample\BindingSupport\IdentifyController.cs 131 Active
Error CS1002 ; expected PopupSample C:\Users\CL5199\Desktop\PopupSample\PopupSample\PopupSample\BindingSupport\IdentifyController.cs 131 Active
Error CS1513 } expected PopupSample C:\Users\CL5199\Desktop\PopupSample\PopupSample\PopupSample\BindingSupport\IdentifyController.cs 131 Active
Error CS1513 } expected PopupSample C:\Users\CL5199\Desktop\PopupSample\PopupSample\PopupSample\BindingSupport\IdentifyController.cs 136 Active
Error CS1026 ) expected PopupSample C:\Users\CL5199\Desktop\PopupSample\PopupSample\PopupSample\BindingSupport\IdentifyController.cs 137 Active
Error CS1002 ; expected PopupSample C:\Users\CL5199\Desktop\PopupSample\PopupSample\PopupSample\BindingSupport\IdentifyController.cs 137 Active
Error CS1513 } expected PopupSample C:\Users\CL5199\Desktop\PopupSample\PopupSample\PopupSample\BindingSupport\IdentifyController.cs 137 Active
Error CS0103 The name 'loadable' does not exist in the current context PopupSample C:\Users\CL5199\Desktop\PopupSample\PopupSample\PopupSample\BindingSupport\IdentifyController.cs 99 Active
Error CS0103 The name 'loadable' does not exist in the current context PopupSample C:\Users\CL5199\Desktop\PopupSample\PopupSample\PopupSample\BindingSupport\IdentifyController.cs 99 Active
Error CS0103 The name 'loadable' does not exist in the current context PopupSample C:\Users\CL5199\Desktop\PopupSample\PopupSample\PopupSample\BindingSupport\IdentifyController.cs 101 Active
Error CS0103 The name 'targetLayer' does not exist in the current context PopupSample C:\Users\CL5199\Desktop\PopupSample\PopupSample\PopupSample\BindingSupport\IdentifyController.cs 125 Active
Error CS0103 The name 'targetLayer' does not exist in the current context PopupSample C:\Users\CL5199\Desktop\PopupSample\PopupSample\PopupSample\BindingSupport\IdentifyController.cs 128 Active
Error CS0103 The name 'targetOverlay' does not exist in the current context PopupSample C:\Users\CL5199\Desktop\PopupSample\PopupSample\PopupSample\BindingSupport\IdentifyController.cs 131 Active
Error CS0103 The name 'targetOverlay' does not exist in the current context PopupSample C:\Users\CL5199\Desktop\PopupSample\PopupSample\PopupSample\BindingSupport\IdentifyController.cs 134 Active
Error CS0103 The name 'sublayer' does not exist in the current context PopupSample C:\Users\CL5199\Desktop\PopupSample\PopupSample\PopupSample\BindingSupport\IdentifyController.cs 137 Active
Error CS0103 The name 'sublayer' does not exist in the current context PopupSample C:\Users\CL5199\Desktop\PopupSample\PopupSample\PopupSample\BindingSupport\IdentifyController.cs 139 Active
Error CS0103 The name 'sublayer' does not exist in the current context PopupSample C:\Users\CL5199\Desktop\PopupSample\PopupSample\PopupSample\BindingSupport\IdentifyController.cs 143 Active
Error The name "MapViewModel" does not exist in the namespace "clr-namespace:PopupSample.ViewModels". PopupSample C:\Users\CL5199\Desktop\PopupSample\PopupSample\PopupSample\MainWindow.xaml 13
Error The name "NullToVisibilityConverter" does not exist in the namespace "clr-namespace:PopupSample.Converters". PopupSample C:\Users\CL5199\Desktop\PopupSample\PopupSample\PopupSample\MainWindow.xaml 14
Error The name "MapViewExtensions" does not exist in the namespace "clr-namespace:PopupSample.BindingSupport". PopupSample C:\Users\CL5199\Desktop\PopupSample\PopupSample\PopupSample\MainWindow.xaml 22

0 Kudos