CampusMapPage.xaml.cs CampusAppWP8::Pages::Campusmap::CampusMapPage CampusAppWP8::Pages::Campusmap //----------------------------------------------------------------------------- //<copyrightfile="CampusMapPage.xaml.cs"company="BTU/IIT"> //Companycopyrighttag. //</copyright> //<author>fiedlchr</author> //<sience>13.08.2013</sience> //----------------------------------------------------------------------------- namespaceCampusAppWP8.Pages.Campusmap { usingSystem; usingSystem.Collections.Generic; usingSystem.Device.Location; usingSystem.Globalization; usingSystem.Threading; usingSystem.Windows; usingSystem.Windows.Navigation; usingCampusAppWP8.Model.Campusmap; usingCampusAppWP8.Model.GeoDb; usingCampusAppWP8.Resources; usingCampusAppWP8.Utility; usingMicrosoft.Phone.Controls; publicpartialclassCampusMapPage:PhoneApplicationPage { #regionMember privateMapModelmap; #endregion #regionConstructor publicCampusMapPage() { this.InitializeComponent(); this.map=newCBMainMapModel(); this.MapCanvas.DataContext=this.map; } #endregion #regionMethod #regionprotected protectedoverridevoidOnNavigatedTo(NavigationEventArgse) { base.OnNavigatedTo(e); if(e.NavigationMode==NavigationMode.New) { MapCanvas.Children.Clear(); boolscroll=true; stringalias="campus"; if(NavigationContext.QueryString.ContainsKey(Constants.ParamModelMap_SearchTermAlias)) { alias=NavigationContext.QueryString[Constants.ParamModelMap_SearchTermAlias]; this.AddPins(this.SearchPlaces(alias),MapPinModel.PinType.SearchPlace); scroll=false; } else { this.AddPins(this.SearchPlaces(alias),MapPinModel.PinType.Hidden); } this.ShowCurrentPositionDispatcher(scroll); } } #endregion #regionprivate privatevoidButton_Click(objectsender,RoutedEventArgse) { //this.AddPin(double.Parse(XPoint.Text),double.Parse(YPoint.Text)); } privatevoidButton_Click2(objectsender,RoutedEventArgse) { stringquery=QString.Text.Trim(); if(query.Equals(string.Empty)) { return; } MapCanvas.Children.Clear(); this.AddPins(this.SearchPlaces(query),MapPinModel.PinType.SearchPlace); } privateList<PlaceModel>SearchPlaces(stringquery) { returnthis.map.Spatial.GetPlacesByInformation(query); } privatevoidAddPins(List<PlaceModel>places,MapPinModel.PinTypetype,boolscroll=true) { foreach(PlaceModelplaceinplaces) { GeoCoordinatecoor=place.GeoRefPoint; if(coor!=null) { this.AddPin(coor.Longitude,coor.Latitude,type,scroll); } } } privatevoidAddPin(doublex,doubley,MapPinModel.PinTypetype,boolscroll=true) { PointscrollPoint=this.map.GetScrollPoint(this.map.ConverToPixelPoint(this.map.ConverToMapPoint(x,y))); MapCanvas.Children.Add(this.map.AddPinFromRefPoint(this.map.ConverToPixelPoint(this.map.ConverToMapPoint(x,y)),type)); MapScroller.UpdateLayout(); if(scroll) { MapScroller.ScrollToVerticalOffset(scrollPoint.Y); MapScroller.ScrollToHorizontalOffset(scrollPoint.X); } //XPoint.Text=x.ToString(); //YPoint.Text=y.ToString(); } privatevoidUpdateButtonAppBar_Click(objectsender,System.EventArgse) { this.ShowCurrentPositionDispatcher(); } privatevoidShowCurrentPositionDispatcher(boolscroll=true) { ProgressBar.Visibility=Visibility.Visible; Threadthread=newThread(delegate(){this.ShowCurrentPosition(scroll);}); thread.Start(); } privatevoidShowCurrentPosition(boolscroll=true) { Utilities.DetermineAndStoreCurrentPositionForce(); if(this.Dispatcher!=null) { this.Dispatcher.BeginInvoke(newAction(()=>this.SetPinToCurrentPosition(scroll))); } else { this.SetPinToCurrentPosition(scroll); } } privatevoidSetPinToCurrentPosition(boolscroll=true) { stringlat=App.LoadFromAppState<string>(Constants.GeoWatch_CurrentPosition_Lat); stringlog=App.LoadFromAppState<string>(Constants.GeoWatch_CurrentPosition_Long); this.SetPinToPosition(lat,log,MapPinModel.PinType.CurrentPosition,scroll); } privatevoidSetPinToPosition(stringlatitude,stringlongitude,MapPinModel.PinTypetype,boolscroll=true) { doublex; doubley; if(!double.TryParse(longitude,NumberStyles.Any,CultureInfo.InvariantCulture,outx)||!double.TryParse(latitude,NumberStyles.Any,CultureInfo.InvariantCulture,outy)) { return; } this.AddPin(x,y,type,scroll); ProgressBar.Visibility=Visibility.Collapsed; } #endregion #endregion } }