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); }