/// <summary> /// Adds a pin to the current map. /// </summary> /// <param name="pin">A pin to add.</param> private void AddPin(MapExPin pin) { // If map is not present if (this.map == null) { return; } // Create a new marker collection if (this.markers == null) { this.markers = new List <Marker>(); } // Setup market options var markerOptions = new MarkerOptions(); markerOptions.SetPosition(new LatLng(pin.Position.Latitude, pin.Position.Longitude)); markerOptions.Anchor(0.5f, 0.5f); markerOptions.SetTitle(pin.Label); markerOptions.SetSnippet(pin.Address); markerOptions.InfoWindowAnchor(0.5f, 0.5f); // Setup marker icon var icon = MapExRenderer.GetResourceId(pin.Type); markerOptions.SetIcon(BitmapDescriptorFactory.FromResource(icon)); // Add marker to the map var marker = this.map.AddMarker(markerOptions); this.markers.Add(marker); pin.InternalId = marker.Id; // Add event handlers pin.PropertyChanged += this.OnPinPropertyChanged; }