public static GeoImageryViewModel GetGeoImageryViewModel(this XamGeographicMap geoMap) { var geoImagerySource = geoMap.GetGeoImagerySource(); GeoImageryViewModel geoImageryView = new OpenStreetMapImageryView(); if (geoImagerySource == GeoImagerySource.OpenStreetMapImagery) { geoImageryView = new OpenStreetMapImageryView(); } //TODO: might require refactoring based on how MapQuestImagery is implemented in XamGeoMap else if (geoImagerySource == GeoImagerySource.MapQuestImagery) { if (geoMap.BackgroundContent is MapQuestStreetImagery) { geoImageryView = new MapQuestStreetImageryView(); } else // if(geoMap.BackgroundContent is MapQuestStreetImagery) { geoImageryView = new MapQuestSatelliteImageryView(); } } else if (geoImagerySource == GeoImagerySource.BingMapsImagery) { var geoImagery = geoMap.BackgroundContent as BingMapsMapImagery; var style = geoImagery.GetImageryStyle(); geoImageryView = new BingMapsImageryView(style); } else if (geoImagerySource == GeoImagerySource.EsriMapImagery) { var geoImagery = geoMap.BackgroundContent as ArcGISOnlineMapImagery; //var style = geoImagery.GetImageryStyle(); //geoImageryView = new BingMapsImageryView(style); //TODO: add ESRI } return(geoImageryView); }