private void PushpinTap(object sender, RoutedEventArgs e)
        {
            //Popup Close Animation in case popup is active by a previous pin tap
            pu_close_anim.Begin();

            //Reset previous selected pin background icon
            if (prev_pin != null)
                prev_pin.pin_background.Source = new BitmapImage(new Uri("ms-appx:///Assets/icons/ico-venue.png", UriKind.RelativeOrAbsolute));

            //Get tapped pin sender control
            PushpinUserControl pin = (PushpinUserControl)sender;

            if (prev_pin != pin)
            {
                //Set tapped pin's background icon to selected
                pin.pin_background.Source = new BitmapImage(new Uri("ms-appx:///Assets/icons/ico-venue-selected.png", UriKind.RelativeOrAbsolute));
                pin.Width = 200;

                //Get pin's id
                string id = null;
                if (pin.Tag != null)
                {
                    id = pin.Tag.ToString();
                }

                //Show Venue Details
                ShowVenueDetails(id);

                prev_pin = pin;
            }
            else
            {
                //Popup Close Animation
                pu_close_anim.Begin();

                prev_pin = null;
            }
        }
        private void MapControl_MapTapped(MapControl sender, MapInputEventArgs args)
        {
            //Close Venue Details popup if it oppened when clicking on map
            if (prev_pin != null)
                prev_pin.pin_background.Source = new BitmapImage(
                    new Uri("ms-appx:///Assets/icons/ico-venue.png", UriKind.RelativeOrAbsolute));

            //Popup Close Animation
            pu_close_anim.Begin();

            prev_pin = null;
        }
        private void AddPushpin(double lat, double lon, string icon, string id)
        {
            //Create a custom pin using a custom User Control
            PushpinUserControl pin = new PushpinUserControl();

            //Set icon source
            try
            {
                pin.pin_icon.Source = new BitmapImage(new Uri(icon, UriKind.RelativeOrAbsolute));
            }
            catch{}

            //Set tag
            pin.Tag = id;

            //Add Event Handler for Tap
            pin.Tapped += PushpinTap;

            //Add pin on Map Control
            map.Children.Add(pin);

            //Create a geopoint 
            Geopoint geopoint = new Geopoint(new BasicGeoposition()
            {
                Latitude = lat,
                Longitude = lon
            });

            //Set pin's Location in Map
            MapControl.SetLocation(pin, geopoint);

            //Set Normalized Anchor Point
            MapControl.SetNormalizedAnchorPoint(pin, new Point(0.5, 1));
        }