private void SetMapIconPosition(DependencyObject icon, Models.Geoposition geoLocation, Point anchorPoint)
        {
            var nativeCoordinate = CoordinateConverter.ConvertToNative(geoLocation);

            MapControl.SetLocation(icon, nativeCoordinate);
            MapControl.SetNormalizedAnchorPoint(icon, anchorPoint);
        }
        protected override async void AddCustomerToMap(Customer customer)
        {
            var geoLocation = CoordinateConverter.ConvertToNative(customer.GeoLocation);

            var mapIcon = new MapIcon();

            mapIcon.CollisionBehaviorDesired = MapElementCollisionBehavior.RemainVisible;
            mapIcon.Location = geoLocation;
            mapIcon.NormalizedAnchorPoint = new Point(0.5, 1.0);
            mapIcon.ZIndex = 1000;

            var iconImageUri = default(Uri);

            switch (customer.CustomerCategory)
            {
            case CustomerType.Business:
                iconImageUri = new Uri("ms-appx:///Assets/business.png");
                break;

            case CustomerType.Group:
                iconImageUri = new Uri("ms-appx:///Assets/group.png");
                break;

            default:
                iconImageUri = new Uri("ms-appx:///Assets/anonymous.png");
                break;
            }

            RandomAccessStreamReference stream = RandomAccessStreamReference.CreateFromUri(iconImageUri);

            mapIcon.Image = await stream.ScaleTo(48, 48);

            _nativeMap.MapElements.Add(mapIcon);
            _pushpinMappings.Add(mapIcon, customer.Id);
        }