@@ -113,7 +113,7 @@ private set
113113 [ Obsolete ( "Use ILayer.IsMapInfoLayer instead" , true ) ]
114114 public IList < ILayer > InfoLayers { get ; } = new List < ILayer > ( ) ;
115115
116- [ Obsolete ( "Use your own hover event and call Map .GetMapInfo" , true ) ]
116+ [ Obsolete ( "Use your own hover event and call MapControl .GetMapInfo" , true ) ]
117117 public IList < ILayer > HoverLayers { get ; } = new List < ILayer > ( ) ;
118118
119119 /// <summary>
@@ -234,57 +234,14 @@ public BoundingBox Envelope
234234 public event EventHandler RefreshGraphics ;
235235
236236 [ Obsolete ( "Use MapControl.Info instead" , true ) ]
237+ #pragma warning disable 67
237238 public event EventHandler < MapInfoEventArgs > Info ;
239+ #pragma warning restore 67
238240
239- [ Obsolete ( "Use your own hover event instead and call Map.GetMapInfo" , true ) ]
241+ [ Obsolete ( "Use your own hover event instead and call MapControl.GetMapInfo" , true ) ]
242+ #pragma warning disable 67
240243 public event EventHandler < MapInfoEventArgs > Hover ;
241-
242- /// <summary>
243- /// Check, if a widget or feature at a given screen position is clicked/tapped
244- /// </summary>
245- /// <param name="screenPosition">Screen position to check for widgets and features</param>
246- /// <param name="startScreenPosition">Screen position of Viewport/MapControl</param>
247- /// <param name="symbolCache">Cache for symbols to determin size</param>
248- /// <param name="widgetCallback">Callback, which is called when Widget is hiten</param>
249- /// <param name="numTaps">Number of clickes/taps</param>
250- /// <returns>True, if something done </returns>
251- public MapInfoEventArgs InvokeInfo ( IEnumerable < ILayer > layers , Viewport viewport , Point screenPosition ,
252- Point startScreenPosition , ISymbolCache symbolCache ,
253- Action < IWidget , Point > widgetCallback , int numTaps )
254- {
255- var layerWidgets = layers . Select ( l => l . Attribution ) . Where ( a => a != null ) ;
256- var allWidgets = layerWidgets . Concat ( Widgets ) . ToList ( ) ; // Concat layer widgets and map widgets.
257-
258- // First check if a Widget is clicked. In the current design they are always on top of the map.
259- var widget = WidgetTouch . GetWidget ( screenPosition , startScreenPosition , allWidgets ) ;
260- if ( widget != null )
261- {
262- // todo:
263- // How should widgetCallback have a handled type thing?
264- // Widgets should be iterated through rather than getting a single widget,
265- // based on Z index and then called until handled = true; Ordered By highest Z
266- widgetCallback ( widget , screenPosition ) ;
267- return null ;
268- }
269-
270- var mapInfo = InfoHelper . GetMapInfo ( layers , viewport , screenPosition , symbolCache ) ;
271-
272- if ( mapInfo != null )
273- {
274- // todo:
275- // Info items should be iterated through rather than getting a single item,
276- // based on Z index and then called until handled = true; Ordered By highest Z
277- var mapInfoEventArgs = new MapInfoEventArgs
278- {
279- MapInfo = mapInfo ,
280- NumTaps = numTaps ,
281- Handled = false
282- } ;
283- return mapInfoEventArgs ;
284- }
285-
286- return null ;
287- }
244+ #pragma warning restore 67
288245
289246 /// <summary>
290247 /// Abort fetching of all layers
@@ -412,5 +369,11 @@ private void OnDataChanged(object sender, DataChangedEventArgs e)
412369 // let users set the viewport. Adding the navigate methods to the Viewport
413370 // would make sense for that scenario.
414371 public Func < BoundingBox > DefaultExtent { get ; set ; }
372+
373+ public MapInfo GetMapInfo ( IEnumerable < ILayer > layers , IViewport viewport , Point screenPosition ,
374+ ISymbolCache symbolCache , int margin = 0 )
375+ {
376+ return InfoHelper . GetMapInfo ( layers , viewport , screenPosition , symbolCache ) ;
377+ }
415378 }
416379}
0 commit comments