Using Xamarin.Forms.Maps: You have to Init() first!

The first time I wrote a Xamarin.Forms.Maps program, I couldn’t figure out why my map wasn’t appearing. And then I put a call to Xamarin.FormsMaps.Init() into the AppDelegate (iOS) and MainActivity (Android):

Shared:

    public class App
	{
		public static Page GetMainPage ()
		{	
			return new ContentPage { 
				Content = new StackLayout {
					Children = {
						new BoxView { BackgroundColor = Color.Green },
						new Map(MapSpan.FromCenterAndRadius(new Position(37,-122), Distance.FromMiles(10))){
							VerticalOptions = LayoutOptions.FillAndExpand,
							HeightRequest = 100,
							WidthRequest = 960,
							BackgroundColor = Color.Blue
						},
						new BoxView { BackgroundColor = Color.Red }
					}
				}
			};
		}
	}

iOS:

    namespace HelloMap.iOS
	{
		[Register ("AppDelegate")]
		public partial class AppDelegate : UIApplicationDelegate
		{
			UIWindow window;

			public override bool FinishedLaunching (UIApplication app, NSDictionary options)
			{
				Forms.Init ();
				FormsMaps.Init ();

				window = new UIWindow (UIScreen.MainScreen.Bounds);
				
				window.RootViewController = App.GetMainPage ().CreateViewController ();
				window.MakeKeyAndVisible ();
				
				return true;
			}
		}
	}

Android:

    namespace HelloMap.Android
	{
		[Activity (Label = "HelloMap.Android.Android", MainLauncher = true)]
		public class MainActivity : AndroidActivity
		{
			protected override void OnCreate (Bundle bundle)
			{
				base.OnCreate (bundle);

				Xamarin.Forms.Forms.Init (this, bundle);
				FormsMaps.Init(this, bundle);

				SetPage (App.GetMainPage ());
			}
		}
	}

Happy Cross-Platform Coding!

Screen Shot 2014-05-30 at 1.52.09 PM

div>