private double currentZoom = 12.0000;
public Page()
{ InitializeComponent();
viewMap.View = new Microsoft.VirtualEarth.MapControl.MapViewSpecification(
new Location(40.7025506014784, -73.9726731532458), 12.0000);
viewMap.ViewChangeStart += new EventHandler<MapEventArgs>(viewMap_ViewChangeStart);
viewMap.ViewChangeEnd += new EventHandler<MapEventArgs>(viewMap_ViewChangeEnd);
}
void viewMap_ViewChangeEnd(object sender, MapEventArgs e)
{
var m = (Map)sender;
if (currentZoom != m.ZoomLevel)
{
if (m.ZoomLevel < 12)
{
if (m.ZoomLevel == 11)
{
CourseMap4Scale.ScaleX = 1 / 2.0;
CourseMap4Scale.ScaleY = 1 / 2.0;
CourseMapScale.ScaleX = CourseMapScale.ScaleY = 1.245 / 2.0;
CourseScaleTranslate.X = -24;
CourseScaleTranslate.Y = 415; //X="-48" Y="830"
}
else
{
CourseMap4Scale.ScaleX = 1 / Math.Pow((12 - m.ZoomLevel), 2);
CourseMap4Scale.ScaleY = 1 / Math.Pow((12 - m.ZoomLevel), 2);
CourseMapScale.ScaleX = CourseMapScale.ScaleY = 1.245 / Math.Pow((12 - m.ZoomLevel), 2);
CourseScaleTranslate.X = -48 / Math.Pow((12 - m.ZoomLevel), 2);
CourseScaleTranslate.Y = 830 / Math.Pow((12 - m.ZoomLevel), 2); //X="-48" Y="830"
}
}
else if (m.ZoomLevel > 12)
{
if (m.ZoomLevel == 13)
{
CourseMap4Scale.ScaleX = 2;
CourseMap4Scale.ScaleY = 2;
CourseMapScale.ScaleX = CourseMapScale.ScaleY = 1.245 * 2.0;
CourseScaleTranslate.X = -48 * 2;
CourseScaleTranslate.Y = 830 * 2; //X="-48" Y="830"
}
else
{ // 14 or higher --. 4
CourseMap4Scale.ScaleX = Math.Pow((m.ZoomLevel-12), 2);
CourseMap4Scale.ScaleY = Math.Pow((m.ZoomLevel-12), 2);
CourseMapScale.ScaleX = CourseMapScale.ScaleY = 1.245 * Math.Pow((m.ZoomLevel - 12), 2);
CourseScaleTranslate.X = -48.0 * Math.Pow((m.ZoomLevel - 12.0), 2);
CourseScaleTranslate.Y = 830.0 * Math.Pow((m.ZoomLevel - 12.0), 2); //X="-48" Y="830"
}
}
else
{
CourseMap4Scale.ScaleX = 1;
CourseMap4Scale.ScaleY = 1;
CourseMapScale.ScaleX = CourseMapScale.ScaleY = 1.245;
CourseScaleTranslate.X = -48 ;
CourseScaleTranslate.Y = 830 ;
}
currentZoom = m.ZoomLevel;
}
NewCourseMap.Visibility = Visibility.Visible;
CourseMap4.Visibility = Visibility.Visible;
}
void viewMap_ViewChangeStart(object sender, MapEventArgs e)
{
var m = (Map)sender;
if (currentZoom != m.ZoomLevel)
{
NewCourseMap.Visibility = Visibility.Collapsed;
CourseMap4.Visibility = Visibility.Collapsed;
}
}