void _gMap_OnMapZoomChanged() { if (Layers == null) { return; } foreach (var l in Layers.OfType <MapMarkersLayer>()) { l.MarkersTree.CurrentZoom = (int)_gMap.Zoom; } LabelPlaceManager.CurrentZoom = (int)_gMap.Zoom; var ls = Layers; var showLabel = ShowLabel; foreach (var l in ls) { l.UpdateClusters(); } if (showLabel) { LabelPlaceManager.PlaceLabels(_gMap.Markers.Where(m => m is MapMarker && ((MapMarker)m).IsVisible).Select(m => (MapMarker)m).ToList()); } Application.Current.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(() => { OnMapResolutionChanged(); ZoomLevel = (int)_gMap.Zoom; OnZoomChanged(); })); }
public MapControl() { LabelPlaceManager = new LabelPlaceManager(); Tools.CollectionChanged += Tools_CollectionChanged; }